永发信息网

PLSQL中创建序列问题

答案:3  悬赏:30  手机版
解决时间 2021-02-12 07:45
declare
t number;
begin
execute immediate 'create sequence seq_test';
select seq_test.nextval into t from dual;
dbms_output.put_line(t);
end;
为什么会报序列不存在?
最佳答案
这是由于select seq_test.nextval into t from dual; 这个语句当中的seq_test在整个语句执行前还不存在造成的,我刚才测试了一下用变量来代替seq_test貌似还有问题,你自己也研究研究吧,我先去吃饭了,完了再想想撤。

补充:在seq_test已经存在的情况下就没有任何问题
SQL> declare
2 t number;
3 s varchar2(30):='create sequence seq_test';
4 begin
5 execute immediate 'drop sequence seq_test';
6 execute immediate s;
7 select seq_test.nextval into t from dual;
8 dbms_output.put_line(t);
9 end;
10 /
1

PL/SQL procedure successfully completed.
全部回答
当编译器编译动态sql语句时是跳过的编译的,而编译到下一句自然没有seq_test这个序列,所以编译时就错误了。
你好! CREATE SEQUENCE LOG_S INCREMENT BY 1 START WITH 2001 MAXVALUE 9999999 MINVALUE 1 NOCYCLE CACHE 1000 NOORDER ; 以上创建SEQUENCE 参考 打字不易,采纳哦!
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
评价一下“美国的罗斯福新政挽救了市场经济”
百度云求分享傻根进城
宏源通讯(指定专营店)地址在什么地方,想过去
XP驱动精灵2013老是拦截我安装程序怎么卸载?
银行贷款买房还贷问题,降息还款额没变
我被一个网友骗了1万多我现在只知道她是石家
漂亮宝贝童装店地址在哪,我要去那里办事
【朦胧的拼音】朦胧拼音怎么拼
神洲大药房康春堂店在什么地方啊,我要过去处
轻音乐 香港大澳背景音乐
92年11月出生的,算命先生说我缘分26岁来,我
大学生宿舍洗手间日常节水小方法
摩托车轮胎那里的轴承 或者龙头那里的轴承 有
大容量的酷晨 CJH-PA1000iCCN木炭铁胆杀菌电
2019年快男怎样报名
推荐资讯
500分悬赏,在地级市开一家书画院,现在我急
已知tanα=-1/3,求cos2α
单选题近代史学术界对李鸿章的评价可谓争议颇
江陇地址有知道的么?有点事想过去
四川大学电子商务专业召研究生吗
女老人脚肿能活多久
苏卡伦服饰生活馆在什么地方啊,我要过去处理
旅游类书籍读后感。。2500字
精神分裂症吃药还会复发吗 复发之后再吃药有
qq红包充手机话费一定要绑定银行卡吗?
不动产登记工资多少
威海浩润机械有限公司在什么地方啊,我要过去
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?