Я предоставил функцию как часть пакета Oracle, как показано ниже:Нужна помощью вызова функции пакета Oracle из PHP
packageX.functionY (a_project VARCHAR2, a_centers OUT струнных a_types OUT струнного a_values OUT Int32s);
Единственный способ, которым я могу в настоящее время запустить это на Жаба, как показано ниже:
DECLARE
a_centers Strings;
a_types Strings;
a_values Int32s;
n INTEGER :=0 ;
BEGIN
packageX.functionY('myproject', a_centers, a_types, a_values);
n := a_centers.count;
DBMS_OUTPUT.PUT_LINE('Test Result for packageX.functionY');
FOR i in 1..n LOOP
DBMS_OUTPUT.PUT_LINE(a_centers(i) || ' ' || a_types(i) || ' ' || TO_CHAR(a_values(i)));
END LOOP;
END;
Я не знаю, как я могу читать DBMS_OUTPUT с PHP. Я читал, что это не очень хорошая практика. Я прочитал много примеров и документацию Oracle, как вызвать функции пакета, но ничто не помогает в моем случае. Я «чувствую», что часть проблемы - это параметры OUT функции, но я не уверен.
Мой вопрос - две складки.
1) Неужели это плохая идея для чтения DBMS_OUTPUT с PHP? Если нет, то как это сделать?
2) Есть ли способ вернуть данные напрямую, не используя DBMS_OUTPUT, которые я могу читать с функциями oci на php?
Можете ли вы создать другую функцию/процедуру/представление, которая вызывает эту функцию и вызывает этот новый объект из PHP? Или вам действительно нужен PHP-код для выполнения анонимного блока PL/SQL? –
У меня нет привилегий создания/записи на стороне Oracle. Из-за ограниченного срока я должен работать с текущей функцией, как есть. Благодарю. – icramc