まず、postgresql から一連のレコードを返す次の R コマンドを実行しています。
col_qry <- paste("select column_name from table1",sep="")
rs_col <- dbSendQuery(r,col_qry)
temp_list <- fetch(rs_col,n=-1)
返されたデータは、R を使用して印刷すると次の形式で表示されます。print(temp_list)
column_name
1 col1
2 col2
3 col3
4 col4
この返されたデータに基づいて、次のような別のSQLステートメントを生成したいと思います
copy (select "col1","col2","col3","col4" from table2 )
私がこれをするとき
tmp_cp <- paste("copy (select ",col_list,",","from table2",sep="")
これを印刷すると、1つのステートメントtmp_cp
の代わりに一連のステートメントが印刷されます。select内の列名ごとに1つずつ、このように選択しますcopy
copy
copy (select col1 from table2 )
copy (select col2 from table2 )
copy (select col3 from table2 )
copy (select col4 from table2 )
and so on...
copy
すべての列名が一緒に言及され、それぞれが で引用され、""
で区切られた1 つのステートメントのみが必要です,
。どうやってやるの?
更新:これらのステートメントを使用しているとき
col_list <- toString(shQuote(temp_list$column_name))
tmp_cp <- paste("copy (select ",col_list,",","from table2",sep="")
次に、1 つのステートメントのみが生成されますが、列名は次のように二重引用符ではなく単一引用符で囲まれています。
copy (select 'col1','col2','col3','col4' from table2 )
注:上記で 4 つの列について言及しましたが、4 つの列しかないというわけではありません。