2012-04-20 7 views
0

SQLPLUSでスクリプトを実行する際に問題が発生しました。 SQL Developerではうまく動作します。 SQLPLUSの下SQLPLUSで長いPL/SQL出力

set serveroutput on size 1000000 
declare 
yyy varchar2(32000):=''; 
begin 
yyy := 'XxxYyyZzzXxxYyyZzzXxxYyyZzzXxxYyyZzzXxxYyyZzzXxxYyyZzzXxxYyyZzzXxxYyyZzzXxxYyyZzzXxxYyyZzzXxxYyyZzzXxxYyyZzzXxxYyyZzzXxxYyyZzzXxxYyyZzzXxxYyyZzzXxxYyyZzzXxxYyyZzzXxxYyyZzzXxxYyyZzzXxxYyyZzzXxxYyyZzzXxxYyyZzz'; 
yyy := yyy || 'XxxYyyZzzXxxYyyZzzXxxYyyZzzXxxYyyZzzXxxYyyZzzXxxYyyZzzXxxYyyZzzXxxYyyZzzXxxYyyZzzXxxYyyZzzXxxYyyZzzXxxYyyZzzXxxYyyZzzXxxYyyZzzXxxYyyZzzXxxYyyZzzXxxYyyZzzXxxYyyZzzXxxYyyZzzXxxYyyZzzXxxYyyZzzXxxYyyZzzXxxYyyZzz'; 
yyy := yyy || 'XxxYyyZzzXxxYyyZzzXxxYyyZzzXxxYyyZzzXxxYyyZzzXxxYyyZzzXxxYyyZzzXxxYyyZzzXxxYyyZzzXxxYyyZzzXxxYyyZzzXxxYyyZzzXxxYyyZzzXxxYyyZzzXxxYyyZzzXxxYyyZzzXxxYyyZzzXxxYyyZzzXxxYyyZzzXxxYyyZzzXxxYyyZzzXxxYyyZzzXxxYyyZzz'; 
dbms_output.put_line(yyy); 
end; 
/

私はエラーを取得:SQLPLUSの下で長い出力で実行中のスクリプトを強制的にどのように

ORA-06502: PL/SQL: numeric or value error: character to number conversion error ORA-06512: at line 1 

任意のソリューションを?結果をファイルにスプールするので出力が必要です。 Oracle 10gデータベースに対してのOracle 10gよりも古い

をOracleクライアントを使用している

+1

SQL * Plusで私のために細かな作品を参照してください。 –

+0

私はOracle 10gインストールに追加されたSQL * Plusバージョンを持っており、複数のコンピュータ(win7またはxp)にこのようなエラーが発生します。私はSQL * Plusを実行して、上のような内容のスクリプトを '@ script.sql'で呼び出します。多分私のバージョンは盗聴されていますか? –

+0

これは私のSQL * Plusでも正常に動作します。 – Maddy

答えて

1

以下ASKTOMからの引用問題は、実行時にはありません、あなたは明らかにAに対して、古いクライアントを使用している見つけてください。 10.2以上のデータベース。データベースコードは正常に実行されます

例外が発生するのはデータベースからPICK UP THE STRINGに行くときです。

sqlplusとはこのような何かをやっている:

a)の呼び出し手順/コード - それが実行され、DBMS_OUTPUTバッファ、パッケージ内の配列を埋めます。

b)次に、sqlplusはdbms_output.GET_LINESを呼び出して、バッファリングされた出力を印刷します。これは失敗する呼び出しです。詳細については

は親切

http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:1011431134399

+0

絶対に正しく!クライアントは10.1.x、サーバーは10.2.x –

関連する問題