oracle中斜線 和分號 問題

2021-08-19 16:49:25 字數 1040 閱讀 8489

公司最近有個專案要上線,資料庫用的是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,只是對一串命令重新開乙個...