質問に直接答えていない-column
を使用する以外に、クエリから関数を呼び出すときに動作が異なる理由や、動作を変更する方法がわかりません。 少し単純化するためにここでエイリアスを使用して、幅を設定するコマンド:
set lines 250
column rc format a250
select my_function(input1,input2,input3) as rc from dual;
ただし、関数を別の方法で呼び出すことで、必要な出力を取得することもできます。変数と匿名ブロック(またはexecute
省略形として):
variable rc refcursor;
exec :rc := MY_FUNCTION(input1,input2,input3);
print rc
まあ、ほとんどあなたがそれを望むように。出力の最初の行は、関数/パラメーターのリストではなく変数名です。ただし、カーソル列は折り返されていません:
anonymous block completed
RC
---------------------------------------------------------------------------
COLUMN1 COLUMN2 COLUMN3 COLUMN4 COLUMN5
------------------------- ------- ---------- ---------- ----------
18-NOV-14 text some_data1 some_data2 some_data3
(ワークシートではなく)コードエディタから関数を実行することもできます。これにより、匿名ブロックが生成されます。実行矢印をクリックする(またはcontrolキーを押しながらF10キーを押す)と、次のようなダイアログが表示されます。
実行すると、メインウィンドウの下部に[出力変数]タブが表示され、カーソル出力がグリッドに表示されます。
select my_function(...) from dual
を実行するとグリッドビューも表示されます 。カーソルは通常の「クエリ結果」ウィンドウに入りますが、非常にわかりやすい形式ではなく、次のように表示されます。
{<COLUMN1=19-NOV-14,COLUMN2=text,COLUMN3=some_data1,COLUMN4=some_data2,COLUMN5=some_data3>,}
ただし、値をダブルクリックすると、列の右端に黄色の鉛筆記号が表示され、それをクリックすると、そのカーソルが独自のグリッドに表示されます。
個人的にはprint
が好きです スクリプト出力のオプションですが、とにかくグリッドディスプレイを使用することはめったにありません。