declare - カーソルを宣言します
declare [ binary ] cursor for select statement
declare でユーザはカーソルを作れます。カーソルはトランザクション処理内でのみ利用できます。
通常のカーソルは ASCII フォーマットでデータを返します。データは本来バイナリフォーマットで保存されていますので、システムは ASCII フォーマットを出すのに変換をしなくてはいけません。加えて、ASCII フォーマットは時にバイナリフォーマットに比べて大きくなることがあります。属性が ASCII で戻ると、クライアントアプリケーションは操作を行うためにそれからバイナリフォーマットに変換することが多いです。
binaryカーソルは本来のバイナリ表現でデータを返します。ですから、変換のオーバーヘッドが少なくて済みますので、バイナリカーソルは若干速くなる傾向があります。
しかし、バイナリ表現が違うマシンアーキテクチャの間で違うことがありますが、ASCII はアーキテクチャに中立的です。ですから、もしクライアントマシンがサーバマシンと異なる表現を使っているなら、属性をバイナリフォーマットで得ることは多分望む形ではないでしょう。また、主な目的がデータを ASCII で表示することでしたら、ASCII でデータを入手することはクライアント側での手間を幾らか軽減するでしょう。
fetch(l) マニュアルページを参照してください。