表字段出现oracle sql语句关键字时
【现象】:在想一个表中插入数据时,老是报出语法错误。
例如: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语句关键字时相关推荐
- 关于oracle sql语句查询时表名和字段名要加双引号的问题
oracle初学者一般会遇到这个问题. 用navicat可视化创建了表,可是就是不能查到! 后来发现②语句可以查询到 ①select * from user; 但是,我们如果给user加上双引号就可以 ...
- 关于oracle sql语句查询时表名和字段名要加双引号的问题详解
转自:http://www.2cto.com/database/201504/387184.html 作为oracle的初学者相信大家一定会遇到这个问题,如图: 明明就是navicat可视化创建了表, ...
- Oracle+sql+取年度,oracle SQL语句取本周本月本年的数据
--国内从周一到周日 国外是周日到周六 select to_char(sysdate-1,'D') from dual;--取国内的星期几 去掉减一取国外的星期 --取本周时间内的数据 select ...
- Oracle SQL语句执行流程与顺序原理详解
以前读的文章,保存到本地了,忘记来源了,分享一下,本地存着怕丢了 Oracle SQL语句执行流程与顺序原理详解 第一步:客户端把语句发给服务器端执行 当我们在客户端执行SQL语句时,客户端会把这条S ...
- Oracle SQL语句执行步骤
Oracle中SQL语句执行过程中,Oracle内部解析原理如下: 1.当一用户第一次提交一个SQL表达式时,Oracle会将这SQL进行Hard parse,这过程有点像程序编译,检查语法.表名.字 ...
- Oracle Sql语句定时执行
Oracle Sql语句定时执行 本文链接:https://blog.csdn.net/qq_16979575/article/details/70169519 通过网上查询,找到一种方案,就是先在o ...
- oracle sql语句中like %参数%的用法
oracle sql语句中like %参数%的用法,在网上找了很久没找到类似的帖子,因此分享一下我的收获,希望对看到的人有帮助 今天在处理oracle数据库数据merge的时候遇到一个问题: 在mer ...
- oracle中子查询的执行顺序是,Oracle sql语句执行顺序
sql语法的分析是从右到左 一.sql语句的执行步骤: 1)语法分析,分析语句的语法是否符合规范,衡量语句中各表达式的意义. 2)语义分析,检查语句中涉及的所有数据库对象是否存在,且用户有相应的权限. ...
- oracle sql语句常用优化方法
oracle sql语句常用优化方法 最近做一些报表查询,经常做一些小优化,在这里总结一下 语句上的优化: 1.SELECT 语句中避免使用*,用那些字段就摘出哪些. 2.SQL语句尽量用大写: 因为 ...
最新文章
- 我的第一个纯手写jQuery插件
- 《数据库SQL实战》从titles表获取按照title进行分组
- Why Opportunity list is empty
- 使用 Spring 简化 MyBatis
- 串口接收到的字符型数据如何转化成数字
- Bpmn.js 中文文档(一)
- MediaCoder参数设置教程
- tomcat中的过滤器
- nexus 发布报错 Not authorized
- 【分布式缓存之Voldemort 介绍】
- 云计算day12-Kubernetes_K8s
- Libre密聊——致力于私密聊天的用心APP
- 神经网络及其在点云中的应用
- 郭博分析modbus主机模式
- Unity Failed to resolve project template:Failed to decompress
- 本土英雄的退场和归来:Micromax教给了在印中国手机厂商哪些事?
- gstreamer教程(一)-基本概念
- 2075最少拦截系统
- 对电脑屏幕进行监控有什么方法(C#编写的小工具)
- 创业公司做数据分析(二)运营数据系统
热门文章
- 【报告分享】2020中国数字化后浪:中小企业转型与创新实录.pdf(附下载链接)...
- 全球首发!计算机视觉Polygon Mesh Processing总结7——Remeshing Local Structure
- DeepWalk:图网络与NLP的巧妙融合
- 怎样剪立体灯笼_教你怎样做新年DIY剪纸拉花灯笼
- 是什么意思网络语_网络语“随薪锁欲”是什么意思?
- 跨境商家为什么要建自己的独立站?
- pd生成mysql数据库错误_Err] 1064 - You have an error in your ……pd生成mysql导入失败问题...
- Leetcode每日一题:129.sum-root-to-leaf-numbers(求根到叶子节点数字之和)
- 吴恩达机器学习3——逻辑回归、正则化
- pytorch tensor的数据类型