逻辑是这样的:
if dbVersion < '9.3.350',直接输出1####
else 拿REFDESIG_ID_SEQ的nextval ,并做相应的操作,输出2####我现在无论怎么写,都会报 [ PL/SQL: ORA-02289: sequence does not exist ],即使 dbVersion < '9.3.350'代码如下:
declare
maxid number;
nextid number;
agileid number;
v_date date;
dbVersion varchar(8):=0; begin
select substr(value,1,7) into dbVersion from propertytable where parentid = 5001 and propertyid=37;
DBMS_OUTPUT.PUT_LINE(dbVersion);
if (dbVersion < '9.3.350') then
DBMS_OUTPUT.PUT_LINE('1####');
else
DBMS_OUTPUT.PUT_LINE('2####');
select REFDESIG_ID_SEQ.nextval into agileid from dual;
end if;end;
/
请教各位大神,怎么破???
if dbVersion < '9.3.350',直接输出1####
else 拿REFDESIG_ID_SEQ的nextval ,并做相应的操作,输出2####我现在无论怎么写,都会报 [ PL/SQL: ORA-02289: sequence does not exist ],即使 dbVersion < '9.3.350'代码如下:
declare
maxid number;
nextid number;
agileid number;
v_date date;
dbVersion varchar(8):=0; begin
select substr(value,1,7) into dbVersion from propertytable where parentid = 5001 and propertyid=37;
DBMS_OUTPUT.PUT_LINE(dbVersion);
if (dbVersion < '9.3.350') then
DBMS_OUTPUT.PUT_LINE('1####');
else
DBMS_OUTPUT.PUT_LINE('2####');
select REFDESIG_ID_SEQ.nextval into agileid from dual;
end if;end;
/
请教各位大神,怎么破???
单独执行这句:select REFDESIG_ID_SEQ.nextval from dual;能执行吗?
是这样的,当dbVersion < '9.3.350', 是没有REFDESIG_ID_SEQ 这个sequence 的,
只有当dbVersion >= '9.3.350'时候,数据库里才有,我才会去拿这个sequence 的值。
现在我已经确保dbVersion < '9.3.350',这时候还是会报编译错误的。即使逻辑不走下面那块。
execute immediate 'select REFDESIG_ID_SEQ.nextval from dual' into agileid;