вызвать скрипт php из оракула - PullRequest
0 голосов
/ 14 октября 2010

Вопрос следующий: у меня триггер оракула после вставки строки.Из триггера я хочу вызвать скрипт php и передать только вставленные поля строк в качестве параметров.

Вставка происходит из очень старого унаследованного приложения с очень небольшим шансом взглянуть на исходный код.Строки вставляются часто, могут быть пакетами по ~ 1000 строк за раз или могут быть одной строкой за 30 минут, поэтому проверять эту таблицу каждые, скажем, 5 секунд, не вариант.

Итак, идея состоит в том, чтобыесть триггер оракула, который будет запускаться каждый раз при вставке и вызове моего PHP-скрипта?Есть идеи?

Заранее спасибо ...

Ответы [ 2 ]

2 голосов
/ 14 октября 2010

Когда вы говорите «php script», вы в буквальном смысле имеете в виду скрипт командной строки или кусок php, запускаемый через apache / и т. Д.

Если он первый, то используйте OMG Ponies.В противном случае я бы использовал UTL_HTTP для вызова Apache / PHP.На самом деле, я бы, вероятно, все равно решил пойти с этим (обновив php / c #, если это необходимо).

Просто запомните, хотя ... Триггеры являются транзакционными ... если вы абсолютно ДОЛЖНЫ вызывать из триггера, знайте, чтоВаш триггер может запускаться несколько раз (из-за перезапуска запроса ) и может полностью откатываться, в результате чего ваш внешний (предположительно нетранзакционный) вызов php теперь недопустим.Если ваш php не может обработать это, возможно, ваш триггер создает задание или даже сообщение в AQ или что-то в этом роде, это также ускорит обработку, вы, вероятно, не хотите, чтобы вставка ожидала внешнего веб-вызова..

0 голосов
/ 30 сентября 2013
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;
/
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...