gpt4 book ai didi

python - python中与cx_Oracle绑定(bind)变量的异常

转载 作者:行者123 更新时间:2023-12-01 06:08:04 24 4
gpt4 key购买 nike

好的,我已连接到 python 2.7 中的 oracle 数据库,并且 cx_Oracle 5.1 是针对即时客户端 11.2 编译的。我有一个指向数据库的游标,运行 SQL 不是问题,除了这个:

    cursor.execute('ALTER TRIGGER :schema_trigger_name DISABLE',                     schema_trigger_name='test.test_trigger')

    cursor.prepare('ALTER TRIGGER :schema_trigger_name DISABLE')    cursor.execute(None,{'schema_trigger_name': 'test.test_trigger'})

两者都会导致 Oracle 出错:

    Traceback (most recent call last):      File "connect.py", line 257, in         cursor.execute('ALTER TRIGGER :schema_trigger_name DISABLE',                    schema_trigger_name='test.test_trigger')    cx_Oracle.DatabaseError: ORA-01036: illegal variable name/number

运行时:

    cursor.execute('ALTER TRIGGER test.test_trigger DISABLE')

工作完美。绑定(bind)该变量有什么问题?

最佳答案

在您的示例中 test.test_trigger 不是变量而是对象。您只能绑定(bind)变量(可以用值替换)。

您尝试运行的查询在逻辑上相当于:

ALTER TRIGGER 'test.test_trigger' DISABLE

在这种情况下绑定(bind)将不起作用,您必须动态构建查询。

关于python - python中与cx_Oracle绑定(bind)变量的异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7174741/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com