安装Oracle后,创建本地数据库的过程中遇到的一些问题汇总

1、TNS-03505: 无法解析名称在这里插入图片描述
解决办法:修改tnsnames.ora文件,将添加的orcl实例的数据写进去

ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )

解决后图片展示
在这里插入图片描述

2、ORA-12505, TNS:listener does not currently know of SID given in connect desc
给程序配置新数据库时,发生了该报错ORA-12505: TNS: 监听程序当前无法识别连接描述符中所给出的SID
说明给到的sid有误,很有可能就是服务名和sid混淆使用。

首先了解数据库url的写法有两种

//监听sid服务,表示sid为orcl
database.url=jdbc:oracle:thin:@171.xxx.96.xx:xxxx:orcl
//监听服务名,表示服务名为orcl
database.url=jdbc:oracle:thin:@171.xxx.96.xx:xxxx/orcl

第一种是监听sid服务,第二种则是监听服务名

所以发现是自己的sid写错导致出现这个错误,把服务名当做了sid

把orcl的 “ : ” 改为 “ / ” 访问正常

原文链接:https://blog.csdn.net/wenchangwenliu/article/details/124007939

3、ORA-12154: TNS: 无法解析指定的连接标识符
解决方案:
问题发生在listener.org和tnsnames.org配置文件上,重新研究分析后,按照如下配置,并重启oracle server和listener服务,问题解决,配置内容如下,大家可参考修改

在oracle安装目录下F:\app\wangy\product\11.1.0\NETWORK\ADMIN配置listener.org和tnsnames.org文件
listener.org文件

# listener.ora Network Configuration File: F:\app\wangy\product\11.1.0\NETWORK\ADMIN\listener.ora
# Generated by Oracle configuration tools.

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST = locaohost)(PORT = 1521))
    )
  )
SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = DGHM)
      (ORACLE_HOME = F:\app\wangy\product\11.1.0\NETWORK\ADMIN)
      (SID_NAME = ORCL)
    )
  )

  SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = DGHM)
      (ORACLE_HOME = F:\app\wangy\product\11.1.0\NETWORK\ADMIN)
      (SID_NAME = WANGYI)
    )
  )

tnsnames.org文件

# tnsnames.ora Network Configuration File: D:\oracle\app\Administrator\product\11.1.0\db_1\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.

STD62 =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = std62)
    )
  )

ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )

也可以通过Oracle - OraDb11g_home1–>配置和移植工具–>Net Manager进行配置监听程序和服务命名

监听程序
在这里插入图片描述

服务命名
在这里插入图片描述

原文链接:https://blog.csdn.net/weixin_47160526/article/details/110194108

4、ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务
将listener.ora文件中的SID_NAME的值改为服务器中OracleService的值,重启OracleService
在这里插入图片描述
原文链接:https://blog.csdn.net/weixin_47160526/article/details/110194108

5、ORA-01031: insufficient privileges
权限不足问题解决办法
在操作系统本地在oracle用户下使用sqlplus / as sysdba连接sqlplus的时候提示ORA-01031: 权限不足
检查监听和tnsping均正常,查阅资料后发现sqlnet.ora中的SQLNET.AUTHENTICATION_SERVICES

1)在windows下,SQLNET.AUTHENTICATION_SERVICES必须设置为NTS才能使用OS认证;
不设置或者设置为其他任何值都不能使用OS认证。

# This file is actually generated by netca. But if customers choose to 
# install "Software Only", this file wont exist and without the native 
# authentication, they will not be able to connect to the database on NT.

SQLNET.AUTHENTICATION_SERVICES = (NTS)

NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)

原文链接:https://www.yisu.com/zixun/30240.html
或参考链接:http://www.itpub.net/thread-2082923-1-1.html

6、TNS-12541: TNS: 无监听程序
在用PL/SQL Developer连接Oracle 11g时报错“ORA-12541: TNS: 无监听程序”,如下图所示。可以按照如下的步骤进行解决。
在这里插入图片描述
解决办法:监听程序配置
1)从开始菜单中打开“Oracle Net Configuration Assistance”,选择“监听程序配置”,如下图所示,点击下一步。
在这里插入图片描述
2)选择“重新配置”,如下图所示,点击下一步。
在这里插入图片描述
3)选择监听程序,如下图所示,选择协议,一般默认就好,点击下一步。
在这里插入图片描述
在这里插入图片描述

4)选择端口号,如下图所示,点击下一步。
在这里插入图片描述

5)选择“否”,如下图所示,点击下一步。
**加粗样式**
6)监听程序配置完成,如下图所示,点击下一步。
在这里插入图片描述

本地网络服务名配置
1)选择“本地网络服务名配置”,如下图所示,点击下一步。
在这里插入图片描述

2)选择“重新配置”,如下图所示,点击下一步。
在这里插入图片描述
3)“网络服务名”选择你自己数据库的名字,如下图所示,点击下一步。
在这里插入图片描述
4)填写“服务名”,其实就是你创建数据库时的全数据库名,如下图所示,点击下一步。
在这里插入图片描述
5)选择协议,默认选择“TCP”,如下图所示,点击下一步。
在这里插入图片描述
6)填写“主机名”,可以是你的IP地址,也可以是你的主机名;选择端口号,如下图所示,点击下一步。
在这里插入图片描述
7)选择“是,进行测试”,如下图所示,点击下一步。
在这里插入图片描述
8)选择“更改登陆”,填写“用户名”和“口令”,点击“确定”会显示“正在连接…测试成功。”,点击下一步。

在这里插入图片描述

9) 填写“网络服务名”,就是你自己的数据库名,小编的是“zboracle”,点击下一步。“是否配置另一个服务名?”选择“否”,点击下一步,完成。

启动PL/SQL Developer,输入用户名、口令,即可登录成功。

原文链接:https://www.cnblogs.com/yx007/p/6732012.html

7、ORA-12638: 身份证明检索失败
当登录PLSQL的时候,输入了账号密码之类的信息后登录提示了“ORA-12638: 身份证明检索失败”,对于这种情况的解决办法,可以通过修改“sqlnet.ora”文件的SQLNET.AUTHENTICATION_SERVICES = (NTS)中的“NTS”为“NONE”即可

修改后,重新登录即可成功登录;如果依旧提示该报错的话,可以重启下服务或者软件,再重新登录。
sqlnet.ora文件位置参考路径:
F:\app\wangy\product\11.1.0\NETWORK\ADMIN\sqlnet.ora

原文链接:https://blog.csdn.net/weiwu13/article/details/127227028

8、mybatis+oracle,出现ORA-01461:仅能绑定要插入LONG列的LONG值
这个异常是指,用户向数据库执行插入数据操作的时候,某条数据的某个字段值过长,如果是varchar2类型的,当长度超过2000,–4000(最大值)直接的时候,oracle会自动将该字段值转为long型的,然后插入操作失败。

改完数据类型后还是报这个错,原因是:
当从dual中取数据时,会将clob对象的字段转为long型,所以mybatis里不能用select XXXX from dual unionall的方式。而且mybatis里要这样写:jdbcType=CLOB

另外提一下,之前不想在代码的getter里写一堆截取字符长度的代码,就想利用Oracle数据库的substrb函数。
substrb是在插入的时候进行截取,但这个时候按照1的说法已经把超长字段的类型改为long类型,所以还是会报错。

更多推荐