PL/SQL 过程 - 值太多
Posted
技术标签:
【中文标题】PL/SQL 过程 - 值太多【英文标题】:PL/SQL procedure - too many values 【发布时间】:2012-01-13 15:10:06 【问题描述】:我确信这很简单,但我对 PL/SQL 真的很陌生,这让我陷入了困境。
我编写了一个简单的存储过程来返回一些关于客户的值。马上,%rowtype
没有作为保留关键字出现,但编译器没有将它们标记为错误。
然而,它忽略了将FROM demo_customers
行标记为too many values
的整个SQL 语句。即使我尝试将其减少为仅选择一列,它仍然会给我同样的错误。
create or replace
PROCEDURE GETCUSTOMER
(
arg_customerID demo_customers.customer_id%type,
returnRec OUT demo_customers%rowtype
)
AS
BEGIN
SELECT customer_id, cust_first_name, cust_last_name, cust_email
INTO returnRec
FROM demo_customers
WHERE customer_id = arg_customerID ;
END GETCUSTOMER;
【问题讨论】:
【参考方案1】:如果您想选择 %ROWTYPE 记录,您需要执行 SELECT *
而不是选择单个列
create or replace
PROCEDURE GETCUSTOMER
(
arg_customerID demo_customers.customer_id%type,
returnRec OUT demo_customers%rowtype
)
AS
BEGIN
SELECT *
INTO returnRec
FROM demo_customers
WHERE customer_id = arg_customerID ;
END GETCUSTOMER;
如果您明确选择 4 列,Oracle 期望您有 4 个变量来选择这些值。
【讨论】:
以上是关于PL/SQL 过程 - 值太多的主要内容,如果未能解决你的问题,请参考以下文章
ORA-29270:从pl / sql过程调用webservice时,有太多打开的HTTP请求