如何在 Godror 中执行具有多个查询的文件?

我想用 godror Oracle 驱动程序为 Go 执行一个 sql 文件。我的问题是 Godror 不接受文件中超过 1 个查询。你知道我该如何解决这个问题吗?


db2, _ := sql.Open("godror", databaseURL)


c, ioErr := ioutil.ReadFile(sqlFile)


_, err := db2.Exec(string(c))   


defer db2.Close()

使用此代码,此查询有效:


create TABLE books3 (title VARCHAR2(100))

但这不会:


create TABLE books3 (title VARCHAR2(100));

create TABLE books4 (title VARCHAR2(100));

create TABLE books6 (title VARCHAR2(100));


慕丝7291255
浏览 140回答 1
1回答

慕婉清6462132

您必须编写自己的文件解析器来从文件中提取语句,并一次执行一个。如果您使用比 SQL*Plus 文件更严格的语法会更容易,例如,如果您始终/用作 SQL 和 PL/SQL 的终止符,并确保文件不包含 SQL*Plus 语句(如 COLUMN )。一个相关的解析器在 Python 中,位于https://github.com/oracle/python-cx_Oracle/blob/7.3/samples/SampleEnv.py#L124-L157更好的方法可能是将字符串存储在您的 Go 代码中。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go