昨天作業中發現在pl developer中批量執行Oracle的sql陳述句沒有問題,但是通過SecureCRT的sqlplus命令進入資料庫執行同樣的陳述句時發現執行中途報錯。
在sql陳述句中為了防止出現重復設定了自增欄位,用了Oracle的自增序列和觸發器實作的。
示例陳述句如下:
--創建tmp表
create table tmp(
id number not null, --id號
name varchar2(10) not null --姓名
);
create sequence tmp_id_seq; --創建序列
create or replace trigger test_id --觸發器
before insert on tmp --before:執行DML等操作之前觸發
for each row --行級觸發器
begin
select tmp_id_seq.nextval into :new.id from dual;
end;
/
在sqlplus下執行:
create or replace trigger test_id --觸發器
before insert on tmp --before:執行DML等操作之前觸發
for each row --行級觸發器
begin
select tmp_id_seq.nextval into :new.id from dual;
end;
回車之后輸入/可以正常完成觸發器的執行,直接加上/之后再回車會無限執行下去。后來發現再命令列中查看并修改sql檔案end;換行/之后可以整個執行sql陳述句檔案。
雖然最后問題解決了,但是并不知道出現這種情況的原因是什么,所以希望能有大佬幫忙解釋下!


uj5u.com熱心網友回復:
后面那句也沒太看懂,猜測是crt字符編碼問題,可以試試看。轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/21227.html
標籤:開發
上一篇:一個日期查詢的問題
