gpt4 book ai didi

oracle - PL/SQL 过程 - 值太多

转载 作者:行者123 更新时间:2023-12-02 17:50:36 26 4
gpt4 key购买 nike

我确信这很简单,但我对 PL/SQL 真的很陌生,这让我卡住了。

我编写了一个简单的存储过程来返回有关客户的一些值。马上,%rowtype 不会作为保留关键字出现,但编译器不会将它们标记为错误。

然而,它忽略了将 FROM demo_customers 行标记为 太多值 的整个 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;

最佳答案

如果您想选择 %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 个变量来选择这些值。

关于oracle - PL/SQL 过程 - 值太多,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8852641/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com