這是我的觸發器:create or replace trigger qingcerizhi after insert on table_qingce for each row
declare
sqlstr1 varchar2(500);
begin
sqlstr1:='select execmd('||'''mysql -h localhost -u ly -p159 mysql --execute='||'"insert into contactinfo(fid,telephone) values('||:new.iscg||',123);"'''||') from dual';
execute immediate sqlstr1;
end;
是想在table_qingce有資料插入時觸發,然后呼叫execmd函式執行cmd命令,向mysql資料庫中插入一條資料,比如我向table_qingce插入資料(9,失敗)后,在v$sql可以找到select execmd('mysql -h localhost -u ly -p159 mysql --execute="insert into contactinfo(fid,telephone) values(9,123);"') from dual,但是MySQL資料庫并沒有插入新資料,把這條陳述句復制出來新開sql視窗運行,MySQL資料庫就插入了新資料,請教各位大神知道這是什么原因嗎?萬分感謝~~
uj5u.com熱心網友回復:
你這個也沒有呼叫 操作作系統指令的陳述句啊。uj5u.com熱心網友回復:
是自定義函式execmd,自定義函式呼叫的Java source,在網上找的教程,單獨執行是可以成功的
uj5u.com熱心網友回復:
sqlstr1 陳述句,只是一個查詢操作,沒有執行你的 cmdexec。uj5u.com熱心網友回復:
額,依稀記得oracle插入資料得commit吧,你這個沒commit確認能把資料加入資料庫中?我表示懷疑轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/65173.html
標籤:開發
