zoukankan      html  css  js  c++  java
  • Oracle常见语法错误

    【参考文章】:java.sql.SQLSyntaxErrorException: ORA-00909: 参数个数无效

    【参考文章】:Oracle Concat()函数

    【参考文章】:MySQL concat()函数

    【参考文章】:MyBatis Oracle批量插入数据

    【参考文章】:ORA-01861: 文字与格式字符串不匹配

    1. java.sql.SQLSyntaxErrorException: ORA-00933: SQL 命令未正确结束

    1.1 创建表的别名时去掉 as 关键字

    1.2 子语句后面添加或去掉逗号

      在 left join  ... on ...后面添加逗号(,)或者去掉逗号(,)

      Oracle两个左连接语句,一个需要加逗号,一个需要去掉逗号,我也不知道为啥

      select xxx  from  tableA left join xxx on xxx , where xxx;

    1.3 限制查询记录数量

      Oracle 有一个隐藏的字段是 rownum,表示当前记录是第几行

      MySQL:select xxx from table limit  n

      Oracle:select  xxx from table where  xxx=xxx and  rownum=n;

    1.4 排序后取第一行

      如果要先排序,再取第一行,则需要:select  xxx from (select  xxx from table where xxx=xxx order by time) where rownum=n;

    2. java.sql.SQLSyntaxErrorException: ORA-00909: 参数个数无效

    2.1 concat函数

      select COUNT(*) from base_vehicle_info where 1=1 and org_id IN (SELECT org_id FROM base_organization 
    WHERE id_level LIKE CONCAT('%/',#{orgId},'/%') and del_flag = 0

      mysql 的 concat可连接一个或者多个字符串;

      oracle 的 concat 只能连接两个字符串,超过两个的时候需要嵌套使用;

      select COUNT(*) from base_vehicle_info where 1=1 and org_id IN (SELECT org_id FROM base_organization 
    WHERE id_level LIKE concat(concat('%', 1584), '%'))and del_flag = 0

    3. java.sql.SQLSyntaxErrorException: ORA-00911: 无效字符

    3.1 分号

      去掉查询语句后面的分号

    4. ORA-00904 :xxx标识位无效

      检查表明和字段名是否正确

    4.1 IFNULL 标识符无效

      mysql的 IFNULL可用 Oracle 的 nvl 代替

      

  • 相关阅读:
    Django中cookie和session的操作
    Django 模板
    阿里云主机如何设置swap
    Django URL
    Django 高级视图
    Django 表单
    工作流开发使用问题汇总
    软件的模块设计摘要
    Access数据类型与.net OleDbType枚举类型的对应
    60个数据窗口技巧
  • 原文地址:https://www.cnblogs.com/virgosnail/p/12739243.html
Copyright © 2011-2022 走看看