данные поста оракула - PullRequest
       5

данные поста оракула

2 голосов
/ 23 апреля 2011

У меня есть данные поста в php (массив данных), и мне нужно передать их в процедуру оракула, которая принимает table%ROWTYPE. Как мне составить таблицу данных для передачи?

Вот пример кода:

CREATE OR REPLACE PACKAGE restoraunt IS

    TYPE recipe_table IS TABLE OF recipes%ROWTYPE;
    PROCEDURE upsert_recipes(recipes recipe_table);

END restoraunt;

CREATE OR REPLACE PACKAGE BODY restoraunt IS

  PROCEDURE upsert_recipes(recipes recipe_table) IS
  BEGIN
    DBMS_OUTPUT.PUT_LINE('123');
  END;

END restoraunt;

Как видите, мне нужно передать объект recipe_table. Как я могу сделать это с php? (Я знаю, что это должен быть какой-то код pl / sql, но я не понимаю)

1 Ответ

0 голосов
/ 13 мая 2011

Вы не можете передать таблицу типа% row в процедуру Oracle.

Однако вы можете передать таблицу типа объекта:

CREATE TYPE recipe_obj AS OBJECT 
    ( recipe_id NUMBER
    , recipe_text VARCHAR2(200)
    );

CREATE TYPE recipe_tbl AS TABLE OF recipe_obj;

CREATE OR REPLACE PACKAGE restoraunt IS
    PROCEDURE upsert_reciptes ( recipes recipe_tbl);
END restoraunt;

CREATE OR REPLACE PACKAGE BODY restoraunt IS
    PROCEDURE upsert_recipes ( recipes recipe_tbl ) IS
    BEGIN
        dbms_output.put_line('123');
    END;
END restoraunt;

Однако, единственный способя знаю, что передать это в Oracle извне Oracle можно из Java.

Если вы используете Oracle JDeveloper Suite, вы можете автоматически генерировать необходимые классы Java после создания типа объекта и таблицы объектов.Затем вы можете использовать библиотеку Oracle OJDBC для передачи Java-объектов в Oracle через OracleCallableStatement.Большой справочник по этому вопросу - .

Р. М. Менона * Expert Oracle JDBC Programming.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...