2017-11-24 22 views
0

をトリミングからsqlplusと保つためにどのように私はSQLPlusをで次のスクリプトを実行した場合:末尾のスペース

CREATE TABLE trailing_spaces (text VARCHAR2(100)) 
/

-- Note that there is a blank space after 'one' and 'two' 
INSERT INTO trailing_spaces (text) VALUES ('one 
two 
three') 
/

COMMIT 
/

をSQLPlusをではなく、自動的に値one two threeを挿入するようにonetwothreeを挿入されて、ラインをトリムし、末尾のスペースを削除します。

SQLPlusにこれらの行をトリミングしてそのまま実行させる方法を知っている人はいますか?あなたがSQLPLUSのようにそれを行うことができます

+0

「trailling_spaces(text)値に挿入する」( 'one two three'); 'のような1行として挿入しようとするとどうなりますか? – JSapkota

+0

これはうまくいきますが、残念ながらスクリプトに改行があり、SQLPlusで実行する必要があります – pablomatico

+0

insert文を実行すると、3つの異なる行として表示されます。どのようにして 'onetwothree'として1行のテキストを得ることができますか?私はOracle 11.2.0.4を使用しています。 – JSapkota

答えて

0

SQL> CREATE TABLE trailing_spaces (text VARCHAR2(100)); 

Table created. 

SQL> INSERT INTO trailing_spaces (text) VALUES ('one'||' '|| 
              'two'||' '|| 
              'three') ; 

1 row created. 

SQL> COMMIT; 

Commit complete. 

SQL> SELECT * FROM TRAILING_SPACES; 

TEXT 
-------------------------------------------------------------------------------- 
one two three 
+0

私はすぐに良い方法を見つけることができませんが、これは本当に恐ろしいです...それは重要なテキスト操作(改行も削除した)が必要です。 – Ben

+0

@Ben。しかし、これは本当に恐ろしいです。何かが働いていないより良いかもしれないが、1つは働いている何かを持っている。あなたはいくつかのエレガントな解決策を考え出します。 – XING

0

私はあなたのINSERT文を実行した場合、私は、3本の異なるライン上のテキストを取得します。どのようにして1行のテキストをonetwothreeとすることができますか?私はOracle 11.2.0.4を使用しています

私の場合、スクリプトを変更できない場合は、既存のスクリプトを実行し、選択中に以下のように操作できます。

SQL> insert into tbl1 values('one 
    2 two'); 

1 row created. 

SQL> insert into tbl1 values('three 
    2 four'); 

1 row created. 

SQL> select * from tbl1; 

TEXT 
-------------------- 
one 
two 

three 
four 



SQL> select REPLACE(REPLACE(text, CHR(10)), CHR(13)) as text from tbl1; 

TEXT 
-------------------- 
one two 
three four 
関連する問題