一、Oracle连接报错12514
当使用Navicat连接Oracle数据库时,常见的一个错误是报错12514。
错误信息如下:
ORA-12514: TNS: listener does not currently know of service requested in connect descriptor
这个错误的原因是Navicat连接格式有误,需要检查连接信息是否正确。
解决方案如下:
1. 检查连接串是否正确,格式应该是:
HOST:PORT:SID
其中HOST是Oracle所在服务器的IP地址,PORT是监听端口号,SID是数据库实例名。
2. 检查监听器是否启动,可以使用以下命令检查:
lsnrctl status
如果监听器未启动,可以使用以下命令启动:
lsnrctl start
3. 检查Oracle服务是否启动,可以使用以下命令检查:
ps -ef | grep tns
如果Oracle服务未启动,可以使用以下命令启动:
tnslsnr <listener_name> &
二、Oracle报错12514解决办法
如果Navicat连接Oracle时报错12514,可以尝试以下解决办法:
1. 检查Oracle服务是否启动。
2. 检查监听器是否启动。
3. 检查连接串是否正确。
如果以上方法都无法解决问题,可以尝试以下方法:
1. 检查Oracle客户端配置文件,找到tnsnames.ora文件,确认连接串是否正确。
2. 检查tnsnames.ora文件中是否有重复的连接串名称。
3. 检查sqlnet.ora文件中的NAMES.DIRECTORY_PATH参数是否正确。
三、PLSQL连接Oracle
Navicat是一款非常好用的数据库管理工具,但是对于一些Oracle数据库管理工作,我们可能需要使用PLSQL。
PLSQL连接Oracle的方法如下:
1. 打开PLSQL Developer。
2. 点击File -> New -> Database Connection。
3. 在弹出窗口中填写连接信息。
4. 点击Test按钮测试连接。
5. 如果测试通过,可以点击OK按钮保存连接信息。
6. 在左侧导航栏中选择连接,在右侧编辑区中输入SQL语句进行数据库管理。
四、代码示例
以下是一个Python连接Oracle数据库的示例:
import cx_Oracle dsn_tns = cx_Oracle.makedsn('HOST', 'PORT', service_name='SID') conn = cx_Oracle.connect(user='USERNAME', password='PASSWORD', dsn=dsn_tns) cursor = conn.cursor() cursor.execute('SELECT * FROM TABLE_NAME') for row in cursor: print(row) conn.close()
其中HOST是Oracle所在服务器的IP地址,PORT是监听端口号,SID是数据库实例名,USERNAME是登陆名,PASSWORD是密码,TABLE_NAME是表名。