我曾尝试过使用通用方式查询,即我想以通用方式将数据从一个表发送到另一个表,而我的查询是:
Statement mystmt=myConn.createStatement();
ResultSet rs = mystmt.executeQuery("SELECT * FROM empdetails");
ResultSetMetaData rsmd = rs.getMetaData();
int columnCount=rsmd.getColumnCount();
int i=1,j=1;
while(j<=columnCount && i<=columnCount )
{
arr1[i]= rsmd.getColumnName(j);
System.out.println(arr1[i]);
i++;
j++;
}
int k=1;
System.out.println(mystmt.executeUpdate("insert into table2(srccol_name,srccol_data)select 'empno',"+arr1[k]+" from empdetails"));
这里的问题出在srccol_name(即'empno')中,我已经硬编码了columnName。 谁能为此提供解决方案。
答案 0 :(得分:0)
正如您所说,您正在编写通用sql。只需删除该特定列中的引号即可。应该可以。
例如:insert into table2(srccol_name,srccol_data) select empno,"+arr1[k]+" from empdetails
因此,在运行时您要查询的内容将变得像insert into table2(srccol_name,srccol_data) select empno, second_column_name from empdetails
答案 1 :(得分:0)
如果我删除Quote并写Query像 插入到table2(srccol_name,srccol_data)中,从empdetails中选择empno,“ + arr1 [k] +” 然后输出将是
101101 102102 103103
但是输出应该是
empno 101 empno 102 empno 103 empno 104