- 浏览: 221045 次
- 性别:
- 来自: 北京
文章分类
最新评论
CREATE OR REPLACE PROCEDURE P_BIG_TYPE_COMPONENT(BIG_CATEGORY_ID IN varchar2) as --DECLARE cols varchar2(256);-- 只声明 BIG_TABLE_NAME_PREFIX VARCHAR2(4000); CREATESQL VARCHAR2(4000); INSERTSQL VARCHAR2(4000); LEVEL_TABLE_COLS VARCHAR2(4000); TABLE_NUM NUMBER; BEGIN BIG_TABLE_NAME_PREFIX := 'CC_BIG_'; --获取大类下所有字段 (TODO 后续用,隔开数据 wm_concat ORACLE11要替换) select cols into cols from ( select distinct wm_concat( nvl2( (select soa.name from sm_object_attribute soa where soa.attr_id = cca.attr_id), ((select soa.name from sm_object_attribute soa where soa.attr_id = cca.attr_id) || ' varchar2(256),'), '' )) || 'ID varchar2(256) ' cols From ci_category_attr cca where cca.category_id in (select bc.category_id from br_category bc start with bc.category_id = BIG_CATEGORY_ID connect by prior bc.category_id = PARENT_ID) ); --删除表 SELECT COUNT(1) INTO TABLE_NUM FROM USER_TABLES WHERE TABLE_NAME = UPPER(BIG_TABLE_NAME_PREFIX||BIG_CATEGORY_ID); IF TABLE_NUM > 0 THEN EXECUTE IMMEDIATE ('drop table ' || BIG_TABLE_NAME_PREFIX||BIG_CATEGORY_ID ) ; END IF; --创建表 CREATESQL:='create table ' || BIG_TABLE_NAME_PREFIX||BIG_CATEGORY_ID || '(' || cols ||')'; dbms_output.put_line(CREATESQL); EXECUTE IMMEDIATE CREATESQL ; --2.将大类下所有叶子节点特有属性表数据查出来 ,获取所有子类, 取出表名, 再查询所有表名, 放入大表中保存; for bc in (select bc.table_name from br_category bc where level = 3 start with bc.category_id = BIG_CATEGORY_ID connect by prior bc.category_id = PARENT_ID) LOOP --小类列,作为大表的属性 (TODO 更改wm_concat方式) select COLUMN_NAME into LEVEL_TABLE_COLS from (select wm_concat(COLUMN_NAME) COLUMN_NAME from user_tab_columns where table_name =bc.table_name); dbms_output.put_line('小类(子表)属性:'||LEVEL_TABLE_COLS); --如果小类属性(LEVEL_TABLE_COLS)不为空,则将小类数据插入大类表中 if LEVEL_TABLE_COLS <>' ' then INSERTSQL:= 'insert into ' || BIG_TABLE_NAME_PREFIX||BIG_CATEGORY_ID||'('|| LEVEL_TABLE_COLS ||')' || ' select '||LEVEL_TABLE_COLS||' from '|| bc.table_name || ''; dbms_output.put_line(INSERTSQL); EXECUTE IMMEDIATE INSERTSQL ; COMMIT; END if; END LOOP; END; drop table CC_BIG_CC00000154 call P_BIG_TYPE_COMPONENT('CC00000154'); --遍历大类, 按大类创建带特有属性的大类表: DECLARE begin for bc in (select bc.category_id from br_category bc where parent_id = '1' ) LOOP P_BIG_TYPE_COMPONENT(bc.category_id||''); end loop; end;
---循环-----------------------------------------------
CREATE OR REPLACE PROCEDURE P_CREATE_BIG_TYPE_TABLE as begin for bc in (select bc.category_id from br_category bc where parent_id = '1' ) LOOP dbms_output.put_line(bc.category_id); P_BIG_TYPE_COMPONENT(bc.category_id||''); end loop; end; CALL P_CREATE_BIG_TYPE_TABLE()
---SQL执行后返回值存储-----------------------------------------------
EXECUTE IMMEDIATE 'select count(a.com_model) count_pp from jt_material a where a.com_model like ' || '''%' ||bc.com_model|| '%''' into count_pp;
------单引号转义----------------------------------------------
查看编译错误:
打开cmd窗口,执行时候后面加/ , 然后show error ,即可看到错误详情
发表评论
-
Oracle 递归查询
2017-11-30 10:23 1092递归查询基础结构 select … from tablen ... -
Oracle32bit 兼容性
2017-10-26 10:17 1047Oracle10G 32bit 安装在 server08:选择 ... -
Oracle11G密码到期ORA-28002
2017-08-03 09:34 489问题: 系统启动失败, 报错ORA-28002(oracle ... -
wm_concat和listagg用法,合并行数据
2017-06-27 15:48 1302方法一 wn_concat() 函数 1、把以下图中Na ... -
Decode与NVL和NVL2区别
2017-06-27 15:23 698Decode decode(条件,值1,翻译值1,值2,翻 ... -
乐观锁与悲观锁
2017-03-28 13:15 426悲观锁(Pessimistic Lock): ... -
在线格式化工具
2017-03-27 20:37 463比较实用的在线工具: http://tool.lu/ -
解决linux 下 oracle 11g 密码过期问题(ORA-28002)
2017-03-27 16:46 966问题形成:oracle11g 密码过期时间是180天: 查看过 ... -
mysql
2017-03-23 13:57 292查看安装路径:select @@basedir as base ... -
sqlite3创建数据库
2016-12-09 17:42 6141.将sqlite3.exe目录添加到环境变量中 2.创建数据 ... -
Sqlite安装
2016-12-09 16:41 547学习:http://www.runoob.com/sqlite ... -
oracle dba与resource角色的区别
2016-08-02 14:25 599拥有dba角色的用户,就是数据库管理员、可以访问和修改所有用户 ... -
Oracle获得当天0点时间
2016-05-10 17:58 2765SELECT To_char(Trunc(SYSDAT ... -
Oracle授权访问视图
2016-04-25 11:46 1367-----用sys账号登录注册新用户---------CREA ... -
oracle删除一条重复数据
2016-04-21 15:20 869查询及删除重复记录 ... -
Oracle Exists 实现 in like 混合使用
2015-12-08 17:23 1979select t.*, t.rowid from sm_u ... -
mysql 递归查询
2015-11-24 10:24 517CREATE TABLE nodelist( ... -
Oracle - 数据库的实例、表空间、用户、表之间关系
2015-11-12 14:31 715完整的Oracle数据库通常由两部分组成:Oracle数据库 ... -
Oracle授予用户权限
2015-11-12 14:23 6206Oracle授予用户权限 需要在Oracle里创建一个用 ... -
dbms_lob 的 instr和substr
2015-11-02 11:55 2059dbms_lob包学习笔记之三:instr和substr存储过 ...
相关推荐
内容概要:简单的C# winform调用存储过程实例,创建存储过程入参,通过SqlConnection对象和SqlCommand对象调用存储过程,获取存储过程的出参并显示出来,详细代码注释,希望对用到C#调用存储过程的小伙伴有帮助 ...
资源名称:SQL_Server存储过程调试指南内容简介: 存储过程( Stored Procedure)是一组为了完成特定功能的 SQL 语句集,经编译后存储在数据库中。用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来...
sql 高效分页存储过程 sql 高效分页存储过程 sql 高效分页存储过程 sql 高效分页存储过程 sql 高效分页存储过程
SqlServer存储过程的导出导入 近日在研究SQL的存储过程,这里我陆续将我在使用存储过程中碰到的问题及解决办法发布到网上,请各位大虾指正。 SqlServer存储过程的导出导入,网上相关资料特别少,经过摸索,这里写...
创建一个名为stu_pr的存储过程,该存储过程能查询出051班学生的所有资料,包括学生的基本信息、学生的选课信息(含未选课同学的信息)。要求在创建存储过程前请判断该存储过程是否已创建,若已创建则先删除,并给出...
1、资料包含了作者编写的实际应用场景中使用的存储过程代码,共计118个案例,有完整注释说明。旨在帮助读者通过案例学习,快速掌握存储过程的应用方法和技巧。 2、博主博客:...
本文实例讲述了Python使用cx_Oracle调用Oracle存储过程的方法。分享给大家供大家参考,具体如下: 这里主要测试在Python中通过cx_Oracle调用PL/SQL。 首先,在数据库端创建简单的存储过程。 create or replace ...
birt报表中调用存储过程的方法. 目录 1. 概述 3 2. BIRT支持的存储过程返回值类型 3 3. BIRT调用存储过程的语法 4 4. 创建存储过程数据源/集 4 5. 在BIRT中使用存储过程 5 调用返回单结果集的存储过程。 5 调用...
阅读实验教材《SQL Server 2012数据库管理与开发》第137页到155页的内容,掌握存储过程的概念、了解存储过程的类别(系统存储过程,用户自定义存储过程,扩展存储过程);掌握存储过程的建立;掌握存储过程的两种...
存储过程SQL存储过程SQL存储过程SQL存储过程SQL存储过程SQL存储过程SQL存储过程SQL存储过程SQL存储过程SQL存储过程SQL存储过程SQL存储过程SQL存储过程SQL存储过程
本文实例讲述了mysql存储过程之返回多个值的方法。分享给大家供大家参考,具体如下: mysql存储函数只返回一个值。要开发返回多个值的存储过程,需要使用带有INOUT或OUT参数的存储过程。咱们先来看一个orders表它的...
创建存储过程1 课程目标 1)了解 ——存储过程的优点; 2)理解 —— 存储过程的概念; 3)掌握 —— 存储过程的创建方法; 存储过程优点 使用存储过程的优点有: (1)存储过程在服务器端运行,执行速度快。 (2)...
可以将SQL Server存储过程转为oracle存储过程的工具
db2 存储过程 db2 存储过程 db2 存储过程
oracle 存储过程实例 oracle存储过程实例
MySQL创建存储过程批量插入10万条数据 存储过程 1、首先防止主键冲突,我们清空表。 TRUNCATE table A_student; 2、编写存储过程 delimiter ‘$’; CREATE PROCEDURE batchInsert(in args int) BEGIN declare i int ...
SAP HANA 中调试存储过程 SAP HANA 中调试存储过程 SAP HANA 中调试存储过程
1、 基本完全代替编写存储过程的工作任务。 2、 让不会写存储过程的测试人员,也可顺利完成加压测试工作。 3、 让会写存储过程的测试人员,短时间内完成存储过程编写。 4、 可生成现行业主流的不同数据库类型的存储...
java 调用存储过程java 调用存储过程java 调用存储过程java 调用存储过程java 调用存储过程java 调用存储过程java 调用存储过程