簡體   English   中英

從oracle觸發器調用php腳本

[英]call php script from oracle trigger

問題如下:行插入后,我有一個oracle觸發器。 從觸發器,我想調用一個php腳本,並將剛剛插入的行字段作為參數傳遞。

插入來自非常老的舊版應用程序,幾乎沒有機會查看源代碼。 行被頻繁插入,一次可能是約1000行的批處理,或者可能是30分鍾內的一行,所以每隔5秒檢查一次此表是不可行的。

所以,想法是要有oracle觸發器,它將在每次插入並調用我的php腳本時觸發? 有任何想法嗎?

提前致謝...

當您說“ php腳本”時,您的字面意思是一個命令行腳本,或者是通過apache / etc運行的一大部分php。

如果是前者,則選擇OMG Ponies。 否則,我將使用UTL_HTTP來調用Apache / PHP。 實際上,無論如何,我可能都會考慮這樣做(如果需要,請更新php / c#)。

不過請記住。觸發器是事務性的...如果絕對必須從觸發器中調出觸發器,請注意,觸發器可能會運行幾次(由於查詢重新啟動 ),並且可能會完全回滾,從而導致外部(可能是非事務性的) php調用現在無效。 如果您的php無法處理此問題,則可能會讓您的觸發器創建作業,甚至將消息發送到AQ之類的東西,這也會加快處理速度,您可能真的不希望您的插入內容在外部網絡呼叫中等待。

I want to call a php script when some row is inserted or updated in some table via oracle triggers . Currently I m using this but its not much of help.

CREATE OR REPLACE TRIGGER test_script
BEFORE INSERT OR UPDATE OR DELETE ON STATES
FOR EACH ROW
BEGIN
  -- Flags are booleans and can be used in any branching construct.
  CASE
    WHEN INSERTING THEN
      :'/! echo C:/wamp/bin/php/php5.3.5/php.exe C:/wamp/www/csv.php >> C:/wamp/www/log.txt'
    WHEN UPDATING THEN
      -- Include any code specific for when the trigger is fired from an UPDATE.
    WHEN DELETING THEN
      -- Include any code specific for when the trigger is fired from an DELETE.
  END CASE;
END;
/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM