`

oracle-在存储过程中定义动态sql

阅读更多

1、表结构

create table ITEM_PROP(
	PID INTEGER,
	NAME VARCHAR2(20),
	IS_KEY_PROP INTEGER,
	IS_SALE_PROP INTEGER,
	IS_COLOR_PROP INTEGER,
	PARENT_PID INTEGER,
	PARENT_VID VARCHAR2(20),
	PROP_VALUES PROPVALUES
)

 

2、无参形式

CREATE OR REPLACE PROCEDURE pro_drop IS
sql_str VARCHAR2(1000) := '';
BEGIN
	FOR v_cat IN (SELECT pid FROM item_prop WHERE pid = 1627207) LOOP
	sql_str := 'select * from item_prop where pid =' || v_cat.pid;
	dbms_output.put_line(v_cat.pid);
	dbms_output.put_line(sql_str);
	EXECUTE IMMEDIATE sql_str;
	END LOOP;
END;

 

3、有参形式

CREATE OR REPLACE PROCEDURE pro_drop(id in int,name in varchar2) IS
sql_str VARCHAR2(1000) := '';
BEGIN
	FOR v_cat IN (SELECT pid FROM item_prop WHERE pid = id) LOOP
	sql_str := 'update item_prop set name = name where pid =' || v_cat.pid;
	dbms_output.put_line(v_cat.pid);
	dbms_output.put_line(sql_str);
	EXECUTE IMMEDIATE sql_str;
	END LOOP;
	commit;
END;

 

分享到:
评论

相关推荐

    oracle存储过程

    存储过程就是作为可执行对象存放在数据库中的一个或多个SQL命令。 定义总是很抽象。存储过程其实就是能完成一定操作的一组SQL语句,只不过这组语句是放在数据库中的(这里我们只谈SQL Server)。如果我们通过创建存储...

    Oracle--biancheng.rar_oracle_oracle cursors _sage _存储过程

    (1)写出程序包头和包体的定义,其中包含函数avgGradePerCourse和存储过程printAvgGradeCourse。 (2)函数avgGradePerCourse计算某门课程的平均成绩,必须用PL/SQL表(索引表)实现。 (3)存储过程...

    oracle存储过程、游标、函数、PL/SQL块

    包含oracle存储过程的增、删、查、改 %type、%rowtype的使用 自定义函数 PL/SQL块

    C# 访问Oracle示例+PL/SQL+存储过程+触发器 完整示例 测试可用 易懂

    --在过程中不能DLL -- 如果需要使用则可以 execute immediate declare begin execute immediate 'create table xyz(id number(10,0))'; end; /*创建过程的语法: CREATE [OR REPLACE] PROCEDURE ...

    Oracle 从入门到精通视频教程(11G版本)(ppt)

    在SQL*Plus中创建存储过程 使用PL/SQL工具创建存储过程 修改删除存储过程 第11章-触发器,保证数据的正确性 什么是触发器 SQL*PLUS操作触发器 使用PL/SQL工具操作触发器 删除修改触发器 第12章-事务和锁,...

    Oracle SQL高级编程(资深Oracle专家力作,OakTable团队推荐)--随书源代码

    她是Oracle ACE,也是OakTable(Oracle社区中著名的“Oracle科学家”的非正式组织)的成员,经常在技术会议上演讲。她的著作还包括 Expert Oracle Practices和Beginning Oracle SQL,博客主页是karenmorton....

    oracle 字符集乱码解决

    但在实际应用中汉字显示却是正确的,这主要是因为Oracle检查数据库与客户端的字符集设置是同样的,那么数据在客户与数据库之间的存取过程中将不发生任何转换,但是这实际上导致了数据库标识的字符集与实际存入的内容...

    Oracle数据库、SQL

    1.1表是数据库中存储数据的基本单位 1 1.2数据库标准语言 1 1.3数据库(DB) 1 1.4数据库种类 1 1.5数据库中如何定义表 1 1.6 create database dbname的含义 1 1.7安装DBMS 1 1.8宏观上是数据-->database 1 1.9远程...

    精通SQL--结构化查询语言详解

    15.5.2 oracle中存储过程和函数的管理 324 第16章 sql触发器 325 16.1 触发器的基本概念 325 16.1.1 触发器简介 325 16.1.2 触发器执行环境 325 16.2 sql server中的触发器 326 16.2.1 sql server触发器的种类...

    oracle10g课堂练习I(1)

    定义约束条件 7-15 违反约束条件 7-16 约束条件状态 7-17 约束条件检查 7-19 使用 SQL 创建约束条件:示例 7-20 查看表中的列 7-21 查看表的内容 7-22 对表执行的操作 7-23 删除表 7-24 截断表 7-25 索引 ...

    Oracle DBA workshop1 (中文版)

    定义约束条件7-15 违反约束条件7-16 约束条件状态7-17 约束条件检查7-19 使用SQL 创建约束条件:示例7-20 查看表中的列7-21 查看表的内容7-22 表操作7-23 删除表7-24 截断表7-25 索引7-26 索引类型7-27 B 树索引7-28...

    Oracle经典自定义创建函数和存储过程

    自定义函数不能被直接在Java中调用,可以通过存储过程调用函数的方法。本文采用实例的方法,介绍如何在Oracle数据库客户端PL/SQL中创建自定义函数,然后创建相应的存储过程调用该函数,最终实现一个实例计算。

    oracle命令中英文对照.doc

    [code=SQL][/code] --语 句 功 能 --数据操作 SELECT --从数据库表中检索数据行和列 INSERT --向数据库表添加新数据行 DELETE --从数据库表中删除数据行 ...CREATE PROCEDURE --创建一个存储过程

    ORACLE PL/SQL 基础教程及参考

    它们可以存储在数据库中成为存储过程和存储函数,并可以由程序来调用,它们在结构上同程序模块类似。 PL/SQL过程化结构的特点是: 可将逻辑上相关的语句组织在一个程序块内; 通过嵌入或调用子块,构造功能强大的...

    oracle存储过程进阶

    介绍了oracle存储过程中常见的sql写法,游标(隐式,显式),触发器, CASE ... WHEN ... THEN ...ELSE ... END,IF... THEN ... ELSIF ...THEN...ELSE...END IF,记录类型变量定义和使用 ,%type定义变量,%rowtype定义变量...

    在Oracle PL/SQL中游标声明中表名动态变化的方法

    /* 小弟刚刚接触ORACLE存储过程,有一个问题向各位同行求教,小弟写了一个存储过程,其目的是接收一个参数作为表名,然后查询该表中的全部记录的某一个字段的内容导入到另一个表中。 ( tabname in varchar ) is v_...

    Oracle 入门文档2

    Oracle笔记 十、PL/SQL存储过程 Oracle笔记 十一、PL/SQL函数和触发器 Oracle笔记 十二、PL/SQL 面向对象oop编程 Oracle笔记 十三、PL/SQL面向对象之package Oracle笔记 十四、查询XML操作、操作系统文件

    经典SQL脚本大全

    │ │ 8.2.5 校验表中数据是否有循环编码的通用存储过程.sql │ │ 8.2.6 复制指定节点及其所有子节点到指定结点的处理示例(借鉴方式排序法).sql │ │ 8.2.6 复制指定节点及其所有子节点到指定结点的处理示例.sql ...

Global site tag (gtag.js) - Google Analytics