oracle_单引号问题和execute immediate 赋值问题
来源:互联网 发布:厦门云智盛世 数据库 编辑:程序博客网 时间:2024/06/07 01:14
今天初步学习了oracle后,发现了一些关键的小技巧
(1) 有关单引号的问题
在使用||进行字符串或者变量的拼接时,常常会用到单引号。
单引号有两个作用, 一个是用作单引号,一个是转义。单引号普通的使用不必多说,重点在于转义。
当你如果想对一个变量进行一些sql语句的操作时,往往会要使用 '+变量名+’的形式
例如:select count(1) from sys.user_tables where table_name='tableName' //这里的tableName是一个变量,假设它的值为emp
此时如果调用的话,那么就会出现一些错误,因为此时的table_name='tableName',并不是我们想要的值,我们要的值为table_name='emp'
所以问题来了,如何实现
此时就用到单引号的转义字符的功能
当单引号出现多个时,第二个单引号便是转义字符。
例如:select count(1) from sys.user_tables where table_name='||''''||tableName||''''
''''中,开头和结尾的'作为字符串的引用,中间两个的第一个为转义字符,中间两个的第二个为单纯的',所以,通过这种方式,我们就解决了刚刚的功能。
execute immediate 'select count(1) from sys.user_tables where table_name='||''''||tableName||''''; 来执行
(2)execute immediate 赋值问题
select count(1) into v_aa from emp where empno=1; //v_aa 是一个变量
通过这种方法对v_aa这个变量赋值时,如果采用execute immediate 执行这条语句进行赋值,此时是错误的。
应该是
execute immediate ' select count(1) from emp where empno=1'into v_aa;
没错,如果使用execute immediate,赋值应该放在最后!
- oracle_单引号问题和execute immediate 赋值问题
- Oracle_获取动态sql的值 EXECUTE IMMEDIATE.. INTO ..
- 存储过程中调用EXECUTE IMMEDIATE的“权限不足”问题
- 存储过程中调用EXECUTE IMMEDIATE的“权限不足”问题
- 存储过程中调用EXECUTE IMMEDIATE的“权限不足”问题
- Execute immediate
- execute immediate
- EXECUTE IMMEDIATE
- EXECUTE IMMEDIATE
- EXECUTE IMMEDIATE
- EXECUTE IMMEDIATE
- execute immediate
- EXECUTE IMMEDIATE和Using的用法
- oracle存储过程中使用execute immediate执行sql报ora-01031权限不足的问题
- Oracle_服务器客户端乱码问题.
- oracle_并发问题事件解析
- xajax单引号和双引号的问题
- Javascript和Json中的单引号、双引号问题
- 函数指针
- Spark DataFrames
- 坑爹的 小数加法
- 异或的应用及性质
- SmartMonkey--UI遍历
- oracle_单引号问题和execute immediate 赋值问题
- 洛谷 P1018 [NOIP2000 T2] 乘积最大
- 【华为OJ17】坐标移动----方法二(推荐)
- Unity资源热更之AssetBundle(3)———新版本AssetBundle
- 基于V4L2摄像头采集图片程序设计
- 十五章上机练习4
- DXP使用小技巧
- Opencv——全屏显示图片
- EDA软件_Protel99se导出坐标教程