【现象】:在想一个表中插入数据时,老是报出语法错误。

例如:insert into acc.t_rpt_column_info (COLUMN_ID, TABLE_ID, COLUMN_NAME, order, POSITION, DATA_TYPE, DATA_TYPE_DESC, DICTIONARY_TYPE_ID, CONS_RULE, CONS_DESC, TXT_ID, TXT_COLUMN_ID, IS_SHOW, TAG_TYPE, CAN_MODIFY, HAS_INNER_TABLE, LOG_COLUMN_ID, IS_ENABLED, CAN_INPUT)

values ('ACTIONTYPE', 't_base_account', '操作类型', 1, '01', 's,1,1', '[操作类型]不能为空且必须在字典表中有对照。', 'ACTIONTYPE', '', '必输项', 48, 1, '1', '3', '1', '0', 'column18', '1', '1');

在oracle sql语法中表字段名字是不允许出现oracle保留的关键字,如:select,from,where,and,or,order,group,by 等。如果想要使用关键字可以加“”;

测试:

SQL> create table t1 (order number,group varchar2(10));

create table t1 (order number,group varchar2(10))

*

ERROR at line 1:

ORA-00904: : invalid identifier

SQL> create table t1 ("order" number,"group" varchar2(10));

Table created.

SQL> desc t1;

Name                                             Null?    Type

----------------------------------------- -------- ----------------------------

order                                                         NUMBER

group                                                        VARCHAR2(10)

SQL> insert into t1 (order,group) values (1,test);

insert into t1 (order,group) values (1, 'test')

*

ERROR at line 1:

ORA-00928: missing SELECT keyword

SQL> insert into t1  values (1,'test');

1 row created.

SQL> insert into t1 ("order","group") values (2,'test2');

1 row created.

SQL> select * from t1;

order group

---------- ----------

1 test

2 test2

这样的表是不是造成很多麻烦啊?

建议表中的字段不要使用oracle保留的关键字。

要想知道oracle保留了哪些关键字,或者想知道使用的关键字是不是oracle保留的,很简单:

select * from v$reserved_words;

select * from v$reserved_words where keyword = upper('keyword');

还有,存储过程中定义的变量名字不要和表中的字段名一样。如果这样,存储过程编译是可以通过的。但是进入表中的数据不对,这样的错误很难排查的。

表字段出现oracle sql语句关键字时相关推荐

  1. 关于oracle sql语句查询时表名和字段名要加双引号的问题

    oracle初学者一般会遇到这个问题. 用navicat可视化创建了表,可是就是不能查到! 后来发现②语句可以查询到 ①select * from user; 但是,我们如果给user加上双引号就可以 ...

  2. 关于oracle sql语句查询时表名和字段名要加双引号的问题详解

    转自:http://www.2cto.com/database/201504/387184.html 作为oracle的初学者相信大家一定会遇到这个问题,如图: 明明就是navicat可视化创建了表, ...

  3. Oracle+sql+取年度,oracle SQL语句取本周本月本年的数据

    --国内从周一到周日 国外是周日到周六 select to_char(sysdate-1,'D') from dual;--取国内的星期几 去掉减一取国外的星期 --取本周时间内的数据 select ...

  4. Oracle SQL语句执行流程与顺序原理详解

    以前读的文章,保存到本地了,忘记来源了,分享一下,本地存着怕丢了 Oracle SQL语句执行流程与顺序原理详解 第一步:客户端把语句发给服务器端执行 当我们在客户端执行SQL语句时,客户端会把这条S ...

  5. Oracle SQL语句执行步骤

    Oracle中SQL语句执行过程中,Oracle内部解析原理如下: 1.当一用户第一次提交一个SQL表达式时,Oracle会将这SQL进行Hard parse,这过程有点像程序编译,检查语法.表名.字 ...

  6. Oracle Sql语句定时执行

    Oracle Sql语句定时执行 本文链接:https://blog.csdn.net/qq_16979575/article/details/70169519 通过网上查询,找到一种方案,就是先在o ...

  7. oracle sql语句中like %参数%的用法

    oracle sql语句中like %参数%的用法,在网上找了很久没找到类似的帖子,因此分享一下我的收获,希望对看到的人有帮助 今天在处理oracle数据库数据merge的时候遇到一个问题: 在mer ...

  8. oracle中子查询的执行顺序是,Oracle sql语句执行顺序

    sql语法的分析是从右到左 一.sql语句的执行步骤: 1)语法分析,分析语句的语法是否符合规范,衡量语句中各表达式的意义. 2)语义分析,检查语句中涉及的所有数据库对象是否存在,且用户有相应的权限. ...

  9. oracle sql语句常用优化方法

    oracle sql语句常用优化方法 最近做一些报表查询,经常做一些小优化,在这里总结一下 语句上的优化: 1.SELECT 语句中避免使用*,用那些字段就摘出哪些. 2.SQL语句尽量用大写: 因为 ...

最新文章

  1. 我的第一个纯手写jQuery插件
  2. 《数据库SQL实战》从titles表获取按照title进行分组
  3. Why Opportunity list is empty
  4. 使用 Spring 简化 MyBatis
  5. 串口接收到的字符型数据如何转化成数字
  6. Bpmn.js 中文文档(一)
  7. MediaCoder参数设置教程
  8. tomcat中的过滤器
  9. nexus 发布报错 Not authorized
  10. 【分布式缓存之Voldemort 介绍】
  11. 云计算day12-Kubernetes_K8s
  12. Libre密聊——致力于私密聊天的用心APP
  13. 神经网络及其在点云中的应用
  14. 郭博分析modbus主机模式
  15. Unity Failed to resolve project template:Failed to decompress
  16. 本土英雄的退场和归来:Micromax教给了在印中国手机厂商哪些事?
  17. gstreamer教程(一)-基本概念
  18. 2075最少拦截系统
  19. 对电脑屏幕进行监控有什么方法(C#编写的小工具)
  20. 创业公司做数据分析(二)运营数据系统

热门文章

  1. 【报告分享】2020中国数字化后浪:中小企业转型与创新实录.pdf(附下载链接)...
  2. 全球首发!计算机视觉Polygon Mesh Processing总结7——Remeshing Local Structure
  3. DeepWalk:图网络与NLP的巧妙融合
  4. 怎样剪立体灯笼_教你怎样做新年DIY剪纸拉花灯笼
  5. 是什么意思网络语_网络语“随薪锁欲”是什么意思?
  6. 跨境商家为什么要建自己的独立站?
  7. pd生成mysql数据库错误_Err] 1064 - You have an error in your ……pd生成mysql导入失败问题...
  8. Leetcode每日一题:129.sum-root-to-leaf-numbers(求根到叶子节点数字之和)
  9. 吴恩达机器学习3——逻辑回归、正则化
  10. pytorch tensor的数据类型