标签: django-oracle

django.db.utils.DatabaseError:ORA-12154:TNS:无法解析指定的连接标识符

尝试通过settings.py连接到Oracle DB

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.oracle', 
        'NAME': 'Hostname:Port/Service name not SID',  
        'USER': 'Username',                      
        'PASSWORD': 'Password',                                     
    }
}
Run Code Online (Sandbox Code Playgroud)

根据我在网上找到的信息,这应该是如果没有SID时如何通过服务名称连接到Oracle DB的方法。但是我仍然得到错误django.db.utils.DatabaseError: ORA-12154: TNS:could not resolve the connect identifier specified

但是,如果我放弃将这些详细信息放在中,settings.py而只使用,提供的连接字符串cx_Oracle

dsn_tns = cx_Oracle.makedsn('Hostname', 'Port', 
                             service_name='Service name not SID')
connection = cx_Oracle.connect('Username', 'Password', dsn_tns)
Run Code Online (Sandbox Code Playgroud)

我连接很好。是否有新语法可以连接到settings.py的服务名称?如果我可以简单地通过连接字符串进行连接,那么尝试通过settings.py进行连接是否有意义?

python sql oracle django django-oracle

5
推荐指数
1
解决办法
1841
查看次数

密码中带符号@的Oracle连接字符串

我有一个使用连接字符串连接到oracle的代码:

conn = cx_Oracle.connect('username/password@server:port/services')
Run Code Online (Sandbox Code Playgroud)

但问题是我的密码包含@字符,所以它可能会成为

conn = cx_Oracle.connect('username/p@ssword@server:port/services')
Run Code Online (Sandbox Code Playgroud)

它回来了

DatabaseError:ORA-12154:TNS:无法解析指定的连接标识符

我在这个设置中使用Django和Oracle

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.oracle', 
        'NAME': 'Services',  
        'USER': 'user',                      
        'PASSWORD': 'p@ssword',                  
        'HOST': 'ip',                      
        'PORT': 'port',                      
    }
}
Run Code Online (Sandbox Code Playgroud)

我无法更改密码:(有谁知道这个问题?

python oracle django connection-string django-oracle

3
推荐指数
1
解决办法
9548
查看次数

Django oracle 数据库设置

我只想将本地 oracle 数据库与 django 项目连接,但我的数据库凭据不起作用。实际上,我可以通过 sql Developer 使用该凭据连接我的 Oracle 数据库: 在此输入图像描述

我只是在 django settings_py 中使用了该凭证

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.oracle',
        'NAME': 'INTERNAL',
        'USER': 'system',
        'PASSWORD': 'oracle',        
        'HOST':'localhost/xe',
        'PORT':'1521'
    }
}
Run Code Online (Sandbox Code Playgroud)

错误是:

Traceback (most recent call last):
web_1  |   File "manage.py", line 22, in <module>
web_1  |     execute_from_command_line(sys.argv)
web_1  |   File "/usr/local/lib/python3.6/site-packages/django/core/management/__init__.py", line 364, in execute_from_command_line
web_1  |     utility.execute()
web_1  |   File "/usr/local/lib/python3.6/site-packages/django/core/management/__init__.py", line 356, in execute
web_1  |     self.fetch_command(subcommand).run_from_argv(self.argv)
web_1  |   File "/usr/local/lib/python3.6/site-packages/django/core/management/base.py", line 283, in run_from_argv
web_1  | …
Run Code Online (Sandbox Code Playgroud)

oracle django django-models oracle11g django-oracle

1
推荐指数
1
解决办法
1万
查看次数