我是Vertica的新手并在angular aspx页面中尝试此操作。
`con.Open();
cmd = con.CreateCommand();
cmd.Connection = con;
cmd.Parameters.Add(new VerticaParameter("@tblCustomers", table));
cmd.CommandText = "insert into customers select * from @tblCustomers";
cmd.ExecuteNonQuery();`
我已经建立了连接并插入了一些新的记录。 但是现在我试图在我的vertica数据库表中插入批量记录。
与SqlServer相同的东西,
我已将表格数据加载到“table”变量中。哪个是数据表。
有可能这样做吗?因为我收到了一些错误
”
Incorrect syntax at or near $1
“
customers和@tblCustomers都有相同的列。
谢谢!
答案 0 :(得分:0)
不管你是否应该做这样的事情,在你发布的代码中你将@tblCustomers作为参数传递给查询,所以它会去处理它作为字符串值,而不是查询中的对象名称。您需要在代码中构建CommandText
而不将其作为参数。类似的东西:
cmd.CommandText = "insert into customers select * from " & tableName
(对不起,如果这个语法不是很正确,但希望它能够跨越这一点)
其他一些(也是重要的)注意事项:
INSERT
时始终使用列列表。使用INSERT INTO MyTable (some_column, some_other_column) SELECT...
而不是INSERT INTO MyTable SELECT...
SELECT *
。列出你的专栏名称。