我在cx_Oracle上调用.makedsn的方式有问题吗?

问题描述 投票:1回答:1

更新:我现在收到“分配前已引用本地变量'conn_Oracle'”错误。如果有人可以提供有关如何解决此错误的反馈,那就太好了!

我的代码段:

try:

            dsn_Oracle = cx_Oracle.makedsn(queryset.first().Host, queryset.first().Port, service_name = queryset.first().Database)
            conn_Oracle = cx_Oracle.connect(queryset.first().UserID, queryset.first().Password, dsn_Oracle)
            c = conn_Oracle.cursor()
        except:
            connected = False
            self.message_user(request, "Failed to connect.")
        else:
            connected = True
            self.message_user(request, "Successful connection!")

        conn_Oracle.close()
    test_connection.short_description = "Test connection to selected database"
python django database oracle database-connection
1个回答
0
投票

大多数Oracle数据库通过“服务名称”进行访问,因此您可能需要这样做

dsn_Oracle = cx_Oracle.makedsn(queryset.first().Host, queryset.first().Port, service_name=queryset.first().Database)

这取决于您的数据库安装。

还要检查您使用的端口是否正确。

关于连接的很多cx_Oracle文档。检查手册章节Connecting to Oracle Database

© www.soinside.com 2019 - 2024. All rights reserved.