拼接SQL语句[Oracle]
来源:互联网 发布:淘宝如何设置包邮 编辑:程序博客网 时间:2024/05/21 09:53
因为项目需要,有一段select语句中的列,想实现可配置,因此就需要用for循环。但尝试之后发现select语句中是不允许放for循环的。
因此就有了本篇文章。仅是自己在做项目中的一点小心得。欢迎各位大神指正。
需求 select column1,column2,column3,column41,column42,column43,column44...... from table1 where [条件]。其中column41,column42,column43,column44......是想放在另一个表中维护的,因此这些列有可能会增加、减少、改变。
现在我们开始写这部分代码。
首先我们需要定义一个变量,来存放拼接好的SQL语句。
V_SQL_STR varchar2(30000);
接下来就是拼接语句:
V_SQL_STR:=CONCAT(V_SQL_STR,'SELECT ');
V_SQL_STR:=CONCAT(V_SQL_STR,COLUMN1);
V_SQL_STR:=CONCAT(V_SQL_STR,COLUMN2);
V_SQL_STR:=CONCAT(V_SQL_STR,COLUMN3);
--开始拼接Column41往后的列
OPEN TDCV FOR --打开游标
SELECT ITEM_CD
FROM table2
WHERE [条件];
FETCH TDCV BULK COLLECT INTO ITEM_CDS;
CLOSE TDCV;
IF ITEM_CDS.COUNT > 0
THEN
FOR I IN ITEM_CDS.FIRST .. ITEM_CDS.LAST
LOOP
V_SQL_STR :=CONCAT (V_SQL_STR,ITEM_CDS(I)); --将查出来的符合条件的列拼接到SQL语句中
END LOOP;
END IF;
V_SQL_STR:=CONCAT(V_SQL_STR,'from table1');
V_SQL_STR:=CONCAT(V_SQL_STR,'where ');
V_SQL_STR:=CONCAT(V_SQL_STR,'[加上查询条件]');
OPEN P_CUR FOR V_SQL_STR ; --打开游标,开始查询
拼接语句,写起来调试比较麻烦一定要沉下心来慢慢理。
1.在拼接where条件时,如果用到时间变量,要注意时间格式以及转换,调试了好久这个时间条件。
2.在拼接时,有的地方输入变量为定值,应注意单引号的使用。
- 拼接SQL语句[Oracle]
- oracle 数据库sql 语句 拼接字符串
- oracle sql语句中字符串拼接
- oracle数据库拼接sql语句字符串问题
- oracle拼接insert语句
- 技巧-----sql语句拼接
- 拼接sql语句
- SQL语句拼接。。。
- sql语句拼接
- SQL查询语句拼接
- sql 语句的拼接
- iwebshop sql语句拼接
- sql语句拼接
- SQL查询语句拼接
- excel 拼接sql 语句
- 使用SQL语句对Oracle数据库数据进行拼接
- oracle创建临时表及SQL语句拼接
- BBP项目Sql语句拼接
- java泛型
- Tempter of the Bone(深度搜索)
- 技术文章 | 黑客教你如何在Windows上运行Linux桌面应用程序
- TreeMap相关详解
- JMX创建与连接(二)
- 拼接SQL语句[Oracle]
- ios 简单实现半圆形仪表盘 (进度条)
- Type interface mapper.UserMapper is not known to the MapperRegistry.
- Rhel7服务控制
- PHPExcel exception: “Could not close zip file … ”
- Treap
- ORACLE sql调优之记录一次trim函数引发的大表全表扫描
- 程序猿(媛)们注意啦!Git、SVN、Mercurial版本控制系统被爆远程命令执行漏洞
- java 把字符串里的 斜杠 都变成 分隔符