运行 Oracle SQL 开发人员查询使用 pandas.read_sql() 时如何防止 ORA-00900 错误?
How to prevent ORA-00900 error when running Oracle SQL Developer query using pandas.read_sql()?
下面是一个 SQL 开发人员查询的示例,我想 运行 来自 Python。
sqlQuery = """
DEFINE a = 1
DEFINE b = 2
select &&a + &&b from dual
"""
result = pandas.read_sql(sql=sqlQuery, con=Oracle_Connection)
当我在 SQL Developer 中 运行 时,此查询有效,但是当我 运行 Python 中的上述代码时,我收到以下错误:'ORA-00900: invalid SQL statement'
。我可以通过简单的修复来解决这个问题吗?
DEFINE a = 1
DEFINE b = 2
DEFINE 是SQL*Plus 或SQLDeveloper 的命令,不是SQL 命令。
您需要改用绑定变量:
select :a + :b from dual;
完整示例:
sqlQuery = """
select :a + :b from dual
"""
result = pandas.read_sql(sql=sqlQuery, con=Oracle_Connection, params={'a': 1, 'b': 2})
下面是一个 SQL 开发人员查询的示例,我想 运行 来自 Python。
sqlQuery = """
DEFINE a = 1
DEFINE b = 2
select &&a + &&b from dual
"""
result = pandas.read_sql(sql=sqlQuery, con=Oracle_Connection)
当我在 SQL Developer 中 运行 时,此查询有效,但是当我 运行 Python 中的上述代码时,我收到以下错误:'ORA-00900: invalid SQL statement'
。我可以通过简单的修复来解决这个问题吗?
DEFINE a = 1 DEFINE b = 2
DEFINE 是SQL*Plus 或SQLDeveloper 的命令,不是SQL 命令。 您需要改用绑定变量:
select :a + :b from dual;
完整示例:
sqlQuery = """
select :a + :b from dual
"""
result = pandas.read_sql(sql=sqlQuery, con=Oracle_Connection, params={'a': 1, 'b': 2})