CREATE OR REPLACE PROCEDURE p_reset_seq IS
/*
重置序列ID
*/
PN_ID NUMBER;
n number(10);
tsql varchar2(100);
BEGIN
--重置序列1
select seq_finance_income_id.nextval into n from dual;
n:=-(n-1);
tsql:='alter sequence seq_finance_income_id increment by' || (n);
execute immediate tsql;
select seq_finance_income_id.nextval into n from dual;
tsql:='alter sequence seq_finance_income_id increment by 1';//這里運行有時會報錯是什么問題?
execute immediate tsql;
commit;
--重置序列2
select seq_finance_settlement_id.nextval into n from dual;
n:=-(n-1);
tsql:='alter sequence seq_finance_settlement_id increment by' || (n);
execute immediate tsql;
select seq_finance_settlement_id.nextval into n from dual;
tsql:='alter sequence seq_finance_settlement_id increment by 1';
execute immediate tsql;
commit;
END p_reset_seq;
uj5u.com熱心網友回復:
tsql:='alter sequence seq_finance_income_id increment by' || (n);execute immediate tsql;
select seq_finance_income_id.nextval into n from dual;
tsql:='alter sequence seq_finance_income_id increment by 1';//這里運行有時會報錯是什么問題?
execute immediate tsql;
commit;
--重置序列2
select seq_finance_settlement_id.nextval into n from dual;
n:=-(n-1);
tsql:='alter sequence seq_finance_settlement_id increment by' || (n);
以上標紅的3 行,都有問題。
1和 3、by 后要寫一個空格 , 以拼接成 by 1, 沒有空格就是 by1 了。
2、// 要換成 -- ,SQL 陳述句中的注釋是 /* */ 或 -- ,不是能是 //
uj5u.com熱心網友回復:
另外有一個問題,你要注意tsql:='alter sequence seq_finance_income_id increment by ' || (n);
n = 0 的時候,你要處理一下。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/66609.html
標籤:開發
上一篇:資料庫問題
