0

SQL Plus 11.1.0.6.0 を使用して、Oracle 10g データベースへのバッチ挿入を実行するスクリプトを実行しています。私が気付いた問題は、コード文字列を clob フィールドに挿入するときで、次のような末尾にスペースがある行がいくつかあります。

....public void myMethod().... --trailing space here
....{
........int myVar = 1;
........ -- empty line with trailing spaces
........myVar+=1
....}

テーブルに挿入される文字列は、空の行の末尾の空のスペースを失い、次のようになります。

....public void myMethod() --trailing space is lost
....{
........int myVar = 1;
-- empty line without trailing spaces
........myVar+=1
....}

有用なデータに違いはありませんが、データが元のデータとは異なり、いくつかのテストに失敗するため、これは非常にイライラします。

私が見つけたのは SET TRIMSPOOL/TRIMOUT OFF だけで、何も変わりませんでした。他のアイデアはありますか?

4

3 に答える 3

0

スクリプトを投稿しないと確認するのは難しいですが、SQLPlusのCLOBにテキスト文字列を直接挿入するべきではありません。ファイルからテキストをプルインするPL/SQLプロシージャを使用し、SQLPlusからPL/ SQLを呼び出す場合は、すべてのフォーマットを保持する必要があります。

しかし、それは全能のPITAかもしれません。ただし、O'Reilly PL/SQLのテキストには十分に文書化されています。

于 2009-10-21T17:26:44.877 に答える
0

最後に、次のようなハックで解決しました(元の例を考慮して):

declare
myLargeValue_2 clob;
begin
myLargeValue_2 := '....public void myMethod()'||'....
'||'....{
........int myVar = 1;
'||'........' -- empty line with trailing spaces

and so on

基本的にすべての空白を明示的に連結

于 2009-10-22T12:02:45.620 に答える
0

次のパラメーターを有効にすることができます。

SET SQLBLANKLINES ON
于 2014-09-19T14:24:16.127 に答える