gpt4 book ai didi

sql - 错误报告 : ORA-06550: line 7, 列 134 : PL/SQL: ORA-00913: too many values ORA-06550: line 7,

转载 作者:搜寻专家 更新时间:2023-10-30 23:09:47 25 4
gpt4 key购买 nike

>        set serveroutput on  
> set autoprint on;
> declare
> v_first_name employees.first_name%type;
> v_street_address locations.street_address%type;
> v_city locations.city%type;
> v_postal_code locations.postal_code%type;
> begin
> select employee_id first_name,street_address,city,postal_code into:b_employee_id,v_first_name,v_street_address,v_city,v_postal_code
>
> from employees natural join locations
> where employee_id=156; // how to get employee_id stored in b_employee_ud
> dbms_output.put_line('the employee'||v_first_name ||' is located at:'||v_street_address|| v_city ||v_postal_code );
> end;
> /

出现错误错误报告:ORA-06550:第 7 行,第 134 列:PL/SQL: ORA-00913: 值太多ORA-06550: 第 7 行,第 1 列:PL/SQL:SQL 语句被忽略06550.00000 - “行 %s,列 %s:\n%s”*原因:通常是PL/SQL编译错误。*行动:

b_employee_id

156

我想使用存储在 b_employee_id 中的 employee_id

最佳答案

首先,您在 SELECT 子句中的 employee_id 之后缺少一个 逗号

select employee_id first_name,street_address,city,postal_code 
into :b_employee_id,v_first_name,v_street_address,v_city,v_postal_code

应该是

select employee_id, first_name,street_address,city,postal_code 
into :b_employee_id,v_first_name,v_street_address,v_city,v_postal_code

现在,回到您要使用 employee_id = 156 的部分

i want to use employee_id which is stored in b_employee_id

如果您的意图不是对要为其运行查询的 employee_id 进行硬编码(我通过阅读 WHERE 子句末尾的注释行来猜测),那么您需要在 WHERE 子句中使用替换变量,像这样:

WHERE employee_id = :b_emp_id

这里还有另一个假设,在您尝试从中检索记录的表中有一个员工的一条记录。您不应在 INTO 子句

的变量中使用替换变量

如果您出于任何原因想要将 INTO 子句 中返回的值覆盖为某个其他值,您可以稍后在您的程序中使用另一个变量来执行此操作。

关于sql - 错误报告 : ORA-06550: line 7, 列 134 : PL/SQL: ORA-00913: too many values ORA-06550: line 7,,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21670571/

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