zoukankan      html  css  js  c++  java
  • SQL 报错信息整理及解决方案(持续更新)

    整理一下自己遇见过的 SQL 各种报错信息及相应解决方法,方便以后查阅,主要平台为 Oracle:

    • ORA-01461: 仅能绑定要插入 LONG 列的 LONG 值:

      • 原因:插入操作时,数据大于字段设定大小,Oracle 会自动将数据转为 long 型,然后报插入失败错误。
      • 解决:更改数据大小,或者将字段设为 clob 或 blob 类型。
    • "ORA-01012: not logged on" 以及 "Connected to an idle instance":

      • 原因:重启 Oracle 服务器时,如果在运行 shutdown 指令关闭数据库的时候意外断开连接,后面想再次进入 Oracle 服务器启动时便可能会遇见如下报错:
        • 使用 sqlplus /nolog 进入 SQL Plus 后,想连接数据库 conn username/password as sysdba 时,会报 Connected to an idle instance. 错误。
        • 在 SQL Plus 界面,想直接 startup 启动数据库时,会报 ORA-01012: not logged on 错误。

        通过查阅资料,判断报错原因是在关闭数据库意外退出后,ORACLE一直处于锁定状态,不再允许其他操作。

      • 解决:
        • 先关闭ORACLE进程:

          ps -ef|grep ora_dbw0_$ORACLE_SID //找到ORACLE进程
          kill -9 PID //通过找到的进程PID号kill掉该进程
        • 然后重启ORACLE:

          sqlplus /nolog //进入SQL Plus
          startup //启动ORACLE

        最后附上关闭ORACLE的命令说明,以免造成错误的关闭操作:

        • shutdown normal(所有连接断开后关闭数据库)
        • shutdown transactional(所有事务结束后主动断开连接,并关闭数据库)
        • shutdown immediate(主动断开连接和事务)
        • shutdown abort(立即关闭数据库,由于该操作不会同步数据,清空回滚段,不触发检查点,所以比较危险,每次启动需要实例恢复)
    • ORA-00913: 值过多:

      • 原因:向表中插入数据时字段个数不匹配,例如
        insert into table_1 (?, ?) values (?, ?, ?)

        插入值比字段多了一个,则会报该错误

      • 解决:插入字段与插入值修改为个数一致就可以解决了
    • ORA-01791:不是SELECTed表达式错误:

      • 原因:用 select 查询语句时,若同时使用distinct去重与order by排序,就会报该错误,如
        select distinct a from table1 where ... order by b;

        这是因为 order by 根据 b 列排序时与 distinct 产生冲突,distinct 找不到 b 列。

      • 解决:查询列中添加b列,即:
        select distinct a,b from table1 where ... order by b;
        
        
  • 相关阅读:
    LeetCode(287)Find the Duplicate Number
    LeetCode(290) Word Pattern
    LeetCode(205)Isomorphic Strings
    LeetCode(201) Bitwise AND of Numbers Range
    LeetCode(200) Number of Islands
    LeetCode(220) Contains Duplicate III
    LeetCode(219) Contains Duplicate II
    命令行执行Qt程序
    LeetCode(228) Summary Ranges
    redis 的安装和使用记录
  • 原文地址:https://www.cnblogs.com/honoka/p/5085322.html
Copyright © 2011-2022 走看看