Sql函数

CREATE OR REPLACE FUNCTION test_conv(p_table_name   IN VARCHAR2,p_columns      IN VARCHAR2,p_where_clause IN VARCHAR2)RETURN fnd_horizontal_to_vertical_tbl ISl_return_tbl   fnd_horizontal_to_vertical_tbl := fnd_horizontal_to_vertical_tbl();l_where_clause VARCHAR2(2000) := ltrim(p_where_clause);l_char_value   VARCHAR2(400);BEGINIF upper(l_where_clause) LIKE 'WHERE'THENl_where_clause := SUBSTR(l_where_clause, 6);END IF;FOR c IN (SELECT c.column_value FROM TABLE(str2varlist(p_columns)) c)LOOPEXECUTE IMMEDIATE 'select ' || c.column_value || ' from ' || p_table_name ||'  where 1=1 and ' || l_where_clauseINTO l_char_value;l_return_tbl.EXTEND();l_return_tbl(l_return_tbl.COUNT) := fnd_horizontal_to_vertical_rec(c.column_value,l_char_value);END LOOP;RETURN l_return_tbl;
END test_conv;create or replace type fnd_horizontal_to_vertical_rec as object(col_name varchar2(100),COL_VALUE varchar2(100));create or replace type fnd_horizontal_to_vertical_tbl as table of fnd_horizontal_to_vertical_rec;

测试表格

  create table test
(id    varchar2(10),name  varchar2(10),mfg_001  number,mfg_002  number,mfg_003  number,mfg_004 number
)insert into test (ID, NAME, MFG_001, MFG_002, MFG_003, MFG_004)
values ('1', '²âÊÔ', 12, 324, 324, 24);
commit;

调用

select  * from table(test_conv('test a', 'NAME,MFG_001,MFG_002,MFG_003,MFG_004','a.id=1'));

Oracle横竖转换通用函数相关推荐

  1. Oracle 行列转换

    Oracle 行列转换 1.固定列数的行列转换 如 student subject grade --------- ---------- -------- student1 语文 80 student ...

  2. oracle中sum和count可以嵌套吗_【分享吧】Oracle查询转换

    前言 "查询转换"是Oracle解析SQL语句中重要的步骤.其原理是Oracle在解析时通过对原有SQL的等价改写,以达到较高执行效率的方式. 上图展示了SQL的执行过程,当客户提 ...

  3. oracle切换sqlserver,ORACLE语法转换成sqlserver,该如何解决

    ORACLE语法转换成sqlserver 小弟在 ORACLE写了一个小函数,但是在sqlserver里执行不了,小弟不怎么懂得sqlserver的语法,大家帮忙看看,给指正指正 CREATE OR  ...

  4. CSS 3之菜单的横竖转换

    菜单的横竖转换 1. 菜单的横竖转换 2. 无序表格菜单 1. 菜单的横竖转换 在设计网页时,不但能创建垂直导航菜单,也能创建水平导航菜单: 例子1:垂直菜单效果 <!DOCTYPE html& ...

  5. EditPlus 横竖转换

    editplus 横竖转换,很实用,简单明了,直接贴图: 转变前: 转变后: 再变回去:

  6. Oracle 行列转换函数pivot使用

    问题描述: 描述:在项目中,需要将表中日期数据行,用视图转列显示月报表 解决方案: 注意:多聚合必须重命名. create table pivottest( 主键 varchar2(50) defau ...

  7. oracle编码转换utf16,oracle编码转换:AL32UTF8-ZHS16GBK

    --修改Oracle数据库字符集为utf-8: SQL>conn / as sysdba; SQL>shutdown immediate; SQL>startup mount; SQ ...

  8. Excel 横竖转换

    http://jingyan.baidu.com/article/5552ef4717c6df518efbc97f.html Excel中的数据怎样横竖转换 浏览: 4764 | 更新: 2011-1 ...

  9. oracle转换字符,难得一遇的oracle字符转换number型!!

    难得一遇的oracle字符转换number型!! sql 语句:          select jh,dwdm,to_char(tjrq,'yyyy-mm')as tjrq,yxcl,tjsj,kj ...

最新文章

  1. numpy一维数组的反转/倒序
  2. 5G NR — RAN 的技术演进方向
  3. Linux信号的使用
  4. 他,是数学天才,是多复变解析函数的创始人
  5. 微软发布新品被指剽窃!交涉无果,两年开源项目被迫终结
  6. 初级开发人员的缺点_如何避免我作为初级开发人员犯的这7个错误
  7. node mysql 搭建博客_node.js+Hexo+Git搭建个人博客
  8. acrobat 控件可以发布吗_自己能做小程序商城吗?可以发布使用吗
  9. php5.3升级脚本
  10. web服务器超过访问上限显示,当Web服务器访问人数超过了设计访问人数上限,将可能出现的HTTP状态...
  11. 司普沃浅谈蓝莓种植技术与管理
  12. 微信小程序注册相关资料
  13. 路由器DNS被劫持 解决办法、网站被劫持怎么办怎么解决
  14. 基础研究的高风险导向型范式,助力“从0到1”的创新
  15. C++ 中ASCII码转化
  16. 明日之后多贝雪山服务器在安卓系统叫什么,《明日之后》多贝雪山区域调查攻略 多贝雪山区域调查剧情流程分享...
  17. AIRIOT物联网低代码平台如何配置三菱PLC驱动?
  18. 尋找《案件取证操作教程EnCase》.ppt。
  19. 显示excel工作簿中所有工作表的名称!!!
  20. 2022中国人才市场招聘趋势白皮书

热门文章

  1. arduino与hcsr04_使用Arduino连接HC-SR04超声波距离传感器的方法
  2. php ws聊天,php+websocket实现在线聊天室
  3. 计算器(难度系数:3颗星)
  4. 计算机考研难度档,计算机考研院校报考难度排行
  5. Element_Table的单元格合并
  6. C++ - sstream标准库(串流控制)
  7. 【国产开源】兼容redis协议的内存数据库
  8. ORA-00600: 内部错误代码, 参数: [19004], [], [], [], [], []
  9. 算法设计与分析——散列表/哈希表(Hash Table):直接寻址表
  10. 机器学习算法(二十五):KD树详解及KD树最近邻算法