Я работаю над системой, где Oracle 11g является базой данных. У меня очень ограниченные разрешения на базу данных, и поэтому я могу только вызвать процедуры, которые находятся в пакетах.Oracle 11g - sys_refcursor
Gerally, эти процедуры возвращают их результирующий набор через параметр OUT типа sys_refcursor.
Я могу назвать их точными на C# и получить данные из курсора через тип C# OracleDataset.
Вот мой вопрос. Я хочу, чтобы иметь возможность запускать эти процедуры и просматривать результаты через SQL Developer. Я могу выполнить процедуру в порядке, но просмотр содержимого параметра sys_refcursor OUT поражает меня.
Я сделал несколько попыток, и люди говорят о создании типа и других решений. У меня просто нет разрешений на прохождение.
Итак, как я могу увидеть набор результатов, содержащийся в sys_refcursor? Так что у меня есть процедура с этой подписью ....
procedure an_oracle_Proc(p_ref IN varchar2,
p_result_set OUT sys_refcursor);
Я называю это так ....
DECLARE
l_ref VARCHAR2(10);
l_result_set sys_refcursor;
BEGIN
oracle_pkg.an_oracle_Proc(p_ref => l_ref,
p_result_set => l_result_set);
--How to select from l_result_set with limited permissions
END
Как я могу посмотреть на содержимое l_result_Set?
Вы имеете в виду [как это] (http://stackoverflow.com/a/8618084/266304)? Или вы хотите пересечь строки курсора в PL/SQL? –
Печать не доступна в SQL Developer :( plus, I ofter фактически не знает, какие столбцы будут возвращены до тех пор, пока я его не запустил. Я знаю, что знаю, но это предмет разрешений. Кодирование в темноте – AntDC
Печать абсолютно доступна в SQL Developer, и она печатается в окне вывода сценария. (Вернемся, по крайней мере, к версии 3, не уверен в версии 1.x, которая поставляется с БД, и ваш ответ относится только к более поздним версиям, на которые я верю). Этот ответ был конкретно посвящен разработчику SQL. В статье, на которую вы ссылались, даже упоминается об этом, но Джефф, похоже, предпочитает использовать окно вывода. –