公司最近有個專案要上線,資料庫用的是oracle11g,整理的sql指令碼時發現,有些sql單個執行時都可以正常執行,放到sql檔案中批量執行時就報錯。
經過排查,發現是由於觸發器結尾的分號(;)並不能執行建立該觸發器,需要新增斜線來執行。
出現上面問題的原因是:
1、對於sql語句(如insert、update等),;
結尾表示sql結束,並且會執行sql。如:
insert
into skd_score_card_cycle values (1,1,1,0,sysdate,0,sysdate);
insert
into skd_score_card_cycle values (2,2,1,0,sysdate,0,sysdate);
2、對於sql語句塊、pl塊,;
表示sql結束,但執行sql,需要用/
來執行。/
作用是讓伺服器開始執行前面所寫的sql指令碼。如下面觸發器結尾需要加個/
來執行。
create
orreplace
trigger tr_data_score
before
insert
on skd_data_score
foreach
rowbegin
select seq_data_score.nextval into :new.data_id from dual;
end;
/create
orreplace
trigger tr_data
before
insert
on skd_data
foreach
rowbegin
select seq_data.nextval into :new.data_id from dual;
end;
/
Oracle中分號提示無效字元的問題
我們平時在寫sql語句時,一般都會在結尾加上分號來執行,但在某些情況下可能會導致invalid character的問題 首先檢查sql語句中是否有中文字元的問題,確保自己寫的sql語句正確 在oracle中,分號 和 都是執行的含義,如果使用了 就不需要使用分號了 注 如果是執行儲存過程則必須使用...
matlab矩陣中的逗號和分號
今天小魚分享的比較簡單,但是自己老搞混,所以記錄下來,方便以後查閱 我們這裡定義乙個矩陣 以列的形式將矩陣中量顯示出來方式為a 取第i行到第j行的第k列資料為a i j,k 取第i行到第j行的第m列到第n列的資料為a i j,m n 看到這裡就應該可以知道,matlab中行和列的分開標誌是找逗號,有...
Linux Shell中各種分號和括號的用法總結
各種括號的用法總結如下 1.shell中變數的原形 大家常見的變數形式都是 var 2.命令替換 cmd 命令替換 cmd 和符號 cmd 注意這不是單引號,在美式鍵盤上,是esc下面的那個鍵 有相同之處 3.一串的命令執行 和 和 都是對一串的命令進行執行,但有所區別 a,只是對一串命令重新開乙個...