我用的是django4.1和oracle 9.2
当我尝试从django连接到oracle时,我得到了这个错误
ORA-03113: end-of-file on communication channel
Process ID: 0
Session ID: 0 Serial number: 0
这是我的转机
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.oracle',
'NAME': '***',
'USER': '***',
'PASSWORD': '***',
'HOST': '***',
'PORT': '***',
}
}
有什么问题?
1条答案
按热度按时间gcuhipw91#
您是否确定已正确指定尝试连接的Oracle数据库的版本-版本“9.2”?这是非常旧的,不,非常旧的Oracle数据库版本,实际上有20多年的历史。这意味着,如果没有打字错误,版本确实是9.2,那么您遇到的错误只是Django使用的Oracle DB服务器和Oracle客户端不兼容(可以是Oracle客户端/ Oracle即时客户端,也可以是Python模块
cx_Oracle
)。这意味着,所有这些不同的客户端都太新,无法与如此陈旧的Oracle数据库一起工作。因此,在尝试建立连接期间,您会收到错误"ORA-03113: end-of-file on communication channel"
。顺便说一句,Oracle数据库的确切版本由4个数字(甚至5个数字)组成,而不是像您提到的2个数字-“9.2”。如果是9.2版本,Oracle数据库的版本可以是9.2.0.1(第一个),最高可达9.2.0.8。
为了解决连接问题,您必须尝试找到非常旧的兼容版本的Oracle客户端或Python模块
cx_Oracle
(如果存在这样的版本),或者,这是更可取的方法-升级您的Oracle数据库到一些当前版本,如19 c或21 c。