gpt4 book ai didi

sql - 如何将序列值分配给变量?

转载 作者:行者123 更新时间:2023-12-04 14:51:47 26 4
gpt4 key购买 nike

我需要将一个序列值分配给一个变量,以便在序列值增加后稍后使用。我已经尝试过了,但它给出了一个错误:

variable imageID number;
select SEQ_IMAGE_ID.CURRVAL into :imageID from dual;

select * from IMAGES where IMAGE_ID = :imageID;


Error starting at line 2 in command:
select SEQ_IMAGE_ID.CURRVAL into :imageID from dual
Error report:
SQL Error: ORA-01006: bind variable does not exist
01006. 00000 - "bind variable does not exist"

我已经三次检查序列名称是否正确,有什么想法吗?

最佳答案

您似乎在 SQL*Plus 或 SQL Developer 中执行此操作,来自 variable宣言。您需要在 PL/SQL block 中进行赋值,或者使用显式 begin/end或使用 exec调用隐藏:

variable imageID number;
exec select SEQ_IMAGE_ID.CURRVAL into :imageID from dual;
select * from IMAGES where IMAGE_ID = :imageID;

如果您使用的是 11g,则不需要 select ,您可以分配:
variable imageID number;
exec :image_id := SEQ_IMAGE_ID.CURRVAL;
select * from IMAGES where IMAGE_ID = :imageID;

您还可以使用替换变量:
column tmp_imageid new_value image_id;
select SEQ_IMAGE_ID.CURRVAL as tmp_imageID from dual;
select * from IMAGES where IMAGE_ID = &imageID;

注意 : 的变化表示绑定(bind)变量,到 &表示替换变量。

关于sql - 如何将序列值分配给变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12092430/

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