Oracle
 sql >> база данни >  >> RDS >> Oracle

Отпечатване на Oracle Sys_refcursor в Oracle SQL Developer 1.5

Ще трябва да преминете през референтния курсор и за всеки ред в него да отпечатате отделните полета. Във вашата актуализирана версия трябва да извлечете курсора в локални скаларни променливи, а не друг референтен курсор:

set serveroutput on;
declare
  result sys_refcursor;
  lsn number; -- guessing the data type
begin
  emp.emp360_utils.GET_EMPLOYEEs(222334,result); 
  loop
    fetch result into lsn; -- and other columns if needed
    exit when result%notfound;
    dbms_output.put_line(lsn);
  end loop;
end;
/

Познах lsn е число, ако не е, тогава декларирайте това като правилния тип. Ако курсорът върне повече от една колона, тогава ще трябва да декларирате локални променливи за всяка от тях и да ги извлечете всички в тях, дори ако показвате само една от тях.

Ако просто искате да го покажете, тогава можете да използвате променлива за свързване, за да направите това вместо това (маркирано в текущата версия и обратно към 1.5.0):

variable result refcursor

begin
  emp.emp360_utils.GET_EMPLOYEEs(222334, :result); 
end;
/

print result

Имайте предвид, че variable команда е не в declare блок; това е команда на SQL Developer, а не PL/SQL команда. Както е print , въпреки че и двете са документирани само в документите на SQL*Plus. И също така обърнете внимание на двоеточието в началото на :result в рамките на блока, което показва, че това е свързваща променлива, а не локална PL/SQL променлива.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Намерете дали колона в Oracle има последователност

  2. Създаване на асоциативен масив на ниво пакет в java

  3. ORA-00905:липсваща ключова дума грешка oracle

  4. Условие WHERE за нулев входен параметър на Oracle PL\SQL

  5. върнете набор от резултати от функцията