1

問題に直面した後:

ORA-32108: 最大列またはパラメータ・サイズが指定されていません

少し調べてみたところ、次の 2 つの質問が見つかりました。Oracle 9i が空の文字列を NULL として扱うのはなぜですか? Oracleはnullと空の文字列を区別していませんか? .


これらの質問は、私が得るエラーを説明しています。しかし、これは次の質問につながりました.OracleのResultSetのフィールド値として空の文字列を返すにはどうすればよいですか?


私がこれまでに持っているものは次のとおりです。

  • ステートメントを作成する
  • 出力パラメータを次のように登録しますoracle::occi::OCCICURSOR
  • execute声明
  • GetCursor返された結果セットを使用するために呼び出す I

上記executeのエラーのため、 は失敗します。

では、空の文字列 ( ) の値を持つ結果セットにそのようなフィールドを返すにはどうすればよい''でしょうか?

言い換えれば、ここで指定されたアクションを適用する方法がわかりません-それはサーバー側のものですか? または、コードに何かを追加する必要がありますか? または、この結果セットを返すストアド プロシージャでしょうか。


OCCI (Oracle C++ Call Interface) を使用しています。私の現在の回避策は、単一のスペース ( ) を含む文字列を返すこと' 'ですが、私はそれが好きではありません。

4

1 に答える 1

2

完全に NULL の列を返したい場合はCAST()、あるデータ型を別のデータ型に変換する を使用できます。

たとえば、次の例では完全に null の列が生成されます。

select a.*, cast(null as varchar2(1)) as null_column
  from my_table a

ただし、データベースはこれが VARCHAR2(1) の列である必要があることを認識するようになりましたが、使用する場合null as null_columnは最大長が指定されていません。

于 2012-12-17T11:42:12.437 に答える