web-dev-qa-db-ja.com

Oracleで2列を1にマージ(結合)する方法は?

マージする必要のあるテーブル名と2つの列名をユーザーが入力する3つのテキストフィールドがあります。

2つの列の値を1にマージ(結合)するにはどうすればよいですか?

Oracle 11gエンタープライズを使用しています

5
abekmuratov

連結しますか?

select col1 || ' ' || col2 from tablex
19
Randy

これは非常にあいまいな要件です。多分値を連結しますか?

insert into sometable( Column1 )
values ( Column1 || Column2 );

INSERTするテーブル名を指定する必要がある場合は、動的SQLを使用してこれを実現する必要があります。ターゲット列名も指定する必要がありますか?この例では、PL/SQLを使用することを想定していますが、この場合は適切でない場合があります。

sql_stmt := 'INSERT INTO '|| specified_table || '(' || merge_column || ') VALUES ( :1 )';
EXECUTE IMMEDIATE sql_stmt USING column1 || column2;

http://docs.Oracle.com/cd/B13789_01/appdev.101/b10807/13_elems017.htm

2
Drumbeg

別の列(補助列)を作成し、他の2つの列をこの列に置き換えることができます。

1
user2979622