我目前正在开发一个与 Oracle 数据库交互的 Django 应用程序。我的应用程序需要在远程 Oracle 数据库上执行 SQL 查询,该数据库在 settings.py 文件中配置。
我尝试执行的 SQL 查询的语法类似于:
SELECT * FROM table@source
此处,源是与当前执行查询的数据库不同的数据库。源数据库和目标数据库都是Oracle数据库。
尽管在settings.py中配置了远程数据库,但在执行第一个查询时遇到以下错误:
ORA-02019: connection description for remote database not found
我正在寻找有关如何解决此错误的指导。以下是一些可能有用的附加信息:
我已经确认可以在 Django 环境之外访问远程数据库。 settings.py 中使用的用户凭据具有必要的权限。 该应用程序可以很好地处理本地数据库查询。 有没有人遇到过类似的问题或者可以提供有关可能出现问题的见解?任何有关配置 Django 以使用数据库链接与远程 Oracle 数据库无缝协作的建议将不胜感激。
提前感谢您的帮助!
SELECT * FROM table@source
@source
意味着您的客户端(本地计算机上的 python/django)与一个数据库(在本例中可能是 target
数据库)进行对话,然后 target
数据库打开到 source
的数据库链接table
表所在数据库进行查询,然后将结果集发送回target
数据库,然后返回客户端。
当您使用数据库链接时,您不是直接连接到
source
数据库,因此settings.py
中指定的任何内容都是无关紧要的。
要么:
不要使用数据库链接并使用:
SELECT * FROM table
并告诉 Django 使用到
source
中指定的 settings.py
数据库的连接;或
仅在
target
中指定 settings.py
数据库,并在 target
上创建到
source
的数据库链接。比如:
CREATE PUBLIC DATABASE LINK source USING 'insert_connection_string';
(阅读上面的文档链接并根据需要进行调整。)
然后您可以连接到
target
并使用:
SELECT * FROM table@source