我通常通过 PowerQuery 连接 Oracle 和 Excel。例如,我在 Excel 中下载 Oracle SERVER.TABLE,执行以下操作: = Odbc.Query("dsn=SERVER", "SELECT * FROM TABLE;")。
现在我想做相反的事情。现在我在 Excel 中有一些数据,我想在 Oracle 中创建一个新表。换句话说,我想将我的 Excel 文件导入到 SERVER.TABLE_NEW。
如何使用 PowerQuery 执行此操作?感谢您的先进。
我尝试修改这一行 Odbc.Query("dsn=SERVER", "SELECT * FROM TABLE;")。但我没有成功。
您可以使用 ODBC,但最好使用强大的查询编辑器 UI 通过 Oracle 特定的方法连接到 Oracle 数据库。性能会更高。
Power Query 不导出。期间。
但是,它可以执行SQL语句!
所以,你已经掌握了它的主要部分。在你的情况下,类似
let
SQL = "INSERT INTO table_name (column1, column2, column3)
VALUES
(1, 11, 'apple'),
(2, 22, 'banana');”,
#"Executed SQL" = Odbc.Query("dsn=SERVER", SQL)
in
#"Executed SQL"
所以现在的问题只是将
SQL
变量设置为正确的字符串。
如果您有一个名为 MyTable 的表查询,那么您可以创建第二个名为 MyTableSQL 的查询,您可以使用它来代替硬编码的 SQL 字符串,例如
let
SQL1 = "INSERT INTO table_name (column1, column2, column3)
VALUES",
SQL2 = Text.Combine(
Table.TransformRows(
MyTable,
each Text.Combine(
{
" (",
Text.From([Column1]),
", ",
Text.From([Column2]),
", '",
[Column3],
"')"
}
)
),
",#(lf)" // line feed char
),
SQL = Text.Combine(
{
SQL1,
SQL2
},
"#(lf)"
)
in
SQL