Joe*_*e C 2 oracle plsql stored-procedures
我确信这很简单,但我是PL/SQL的新手,这让我感到困惑.
我写了一个简单的存储过程来返回一些关于客户的值.蝙蝠,%rowtype它们不会作为保留关键字出现,但编译器没有将这些标记为错误.
它,但是,忽略了整个SQL语句标记线FROM demo_customers作为too many values.即使我尝试将其缩小为仅选择一列,它仍然会给我相同的错误.
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;
Run Code Online (Sandbox Code Playgroud)
如果要选择%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;
Run Code Online (Sandbox Code Playgroud)
如果明确选择4列,Oracle希望您有4个变量来选择这些值.