Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Dane wyjściowe skryptu SQL Developer obcinają szerokość sys_refcursor

Nie odpowiadam bezpośrednio na pytanie - nie wiem, dlaczego zachowanie jest inne ani jak je zmienić podczas wywoływania funkcji z zapytania, innego niż za pomocą column polecenie, aby ustawić szerokość, używając aliasu, aby nieco uprościć:

set lines 250
column rc format a250
select my_function(input1,input2,input3) as rc from dual;

Ale możesz również uzyskać żądane dane wyjściowe, wywołując funkcję w inny sposób; ze zmienną i anonimowym blokiem (lub execute jako skrót):

variable rc refcursor;
exec :rc := MY_FUNCTION(input1,input2,input3);
print rc

Cóż, prawie tak, jak chcesz; pierwszy wiersz wyjścia to nazwa zmiennej, a nie lista funkcji/parametrów; ale kolumny kursora nie są zawinięte:

anonymous block completed
RC
---------------------------------------------------------------------------
COLUMN1                   COLUMN2 COLUMN3    COLUMN4    COLUMN5    
------------------------- ------- ---------- ---------- ---------- 
18-NOV-14                 text    some_data1 some_data2 some_data3 

Możesz także uruchomić swoją funkcję z edytora kodu (a nie z arkusza roboczego), który generuje dla Ciebie anonimowy blok; po kliknięciu strzałki uruchamiania (lub naciśnięciu Ctrl-F10) pojawi się takie okno dialogowe:

A po uruchomieniu pojawi się zakładka „zmienne wyjściowe” na dole głównego okna, która pokazuje wynik kursora w siatce.

Możesz także zobaczyć widok siatki po uruchomieniu select my_function(...) from dual . Kursor przechodzi do normalnego okna „wyników zapytania”, ale nie w bardzo przyjaznej formie, wyglądając jako coś takiego:

{<COLUMN1=19-NOV-14,COLUMN2=text,COLUMN3=some_data1,COLUMN4=some_data2,COLUMN5=some_data3>,}

Ale jeśli klikniesz dwukrotnie wartość, zobaczysz symbol żółtego ołówka po prawej stronie kolumny, a kliknięcie spowoduje wyświetlenie tego kursora we własnej siatce.

Osobiście wolę print w wynikach skryptu, ale i tak rzadko używam ekranów przepaskowych.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Podstawowa tabela audytu wyzwalaczy Oracle

  2. Jak najlepiej podzielić struny csv w Oracle 9i?

  3. Funkcja NLS_UPPER() w Oracle

  4. TRANSLATE() Funkcja w Oracle

  5. Liczba wierszy Oracle w tabeli według liczby (*) vs NUM_ROWS z DBA_TABLES