sql >> Database teknologi >  >> RDS >> Oracle

SQL Developer-scriptoutput afkorter sys_refcursor-bredden

Svarer ikke direkte på spørgsmålet - jeg ved ikke, hvorfor adfærden er anderledes, eller hvordan man ændrer den, når funktionen kaldes fra en forespørgsel, andet end med en column kommando for at indstille bredden, ved at bruge et alias her for at forenkle tingene lidt:

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

Men du kan også få det output du ønsker ved at kalde funktionen anderledes; med en variabel og en anonym blok (eller execute som stenografi):

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

Nå, næsten som du vil have det; den første linje i outputtet er variabelnavnet i stedet for funktions-/parameterlisten; men markørkolonnerne er ikke ombrudt:

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

Du kan også køre din funktion fra kodeeditoren (i stedet for arbejdsarket), som genererer en anonym blok til dig; når du klikker på Kør-pilen (eller trykker på kontrol-F10) får du en dialog som denne:

Og efter at have kørt det får du en 'outputvariable' fane nederst i hovedvinduet, som viser markørens output i et gitter.

Du kan også se gittervisningen, når du kører select my_function(...) from dual . Markøren går ind i det normale 'forespørgselsresultat'-vindue, men ikke i en meget venlig form, der vises som noget i retning af:

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

Men hvis du dobbeltklikker på en værdi, ser du et gult blyantsymbol yderst til højre i kolonnen, og ved at klikke på det vises den markør i sit eget gitter.

Personligt foretrækker jeg print mulighed i script-outputtet, men jeg bruger sjældent gird-skærmene alligevel.




  1. ADDTIME() Eksempler – MySQL

  2. Hvad er formålet med at bruge OPTION(MAXDOP 1) i SQL Server?

  3. ExecuteNonQuery returnerer -1 ved brug af sql COUNT på trods af forespørgselsstrengen

  4. Er der nogen forskel mellem IS NULL og =NULL