-1

verticaデータベーステーブルから挿入ステートメントのエクスポートを取得しようとしています。挿入ステートメントを生成するクエリを作成しようとしていますが、構文の問題が発生しています。Verticaで以下のようなことをするにはどうすればよいですか?

select "insert into owner.target_tbl values ( "  ||"'"||a.Head_id||"',"||"'"||a.creation_dt||"',"||"'"||a.section"'"||");" as Query_column
from source_tbl a
4

3 に答える 3

4

名前を二重引用符で囲むと、Verticaはそれが列であると見なし、エラーが発生します。

解決策は次のとおりです。

  • 文字列を一重引用符で囲みます
  • 一重引用符で囲まれた文字列内に一重引用符が必要な場合は、それを2倍にします(二重引用符ではなく、一重引用符の2倍)。

    select 'insert into owner.target_tbl values (' ||'''' || 'a string' ||''', ' || 2 ||');' as Query_column;
    
                         Query_column                     
    ------------------------------------------------------
    insert into owner.target_tbl values ('a string', 2);
    (1 row)
    
于 2013-03-26T08:57:22.157 に答える
3

二重引用符ではなく一重引用符を使用します。

=>「foo」を選択|| デュアルからの「バー」。
エラー:列「foo」は存在しません
=>'foo'を選択|| デュアルからの「バー」。
 ?桁?
----------
 foob​​ar
(1行)
于 2013-03-26T02:20:58.953 に答える
1

アドバイス:可能なnull値をまとめるためにケースを追加するようにしてください-連結シーケンスの引数の1つがnullの場合、結果はnullになります。

于 2013-03-26T11:50:39.607 に答える