Oracle-CURSOR及EXECUTE IMMEDIATE使用

CREATE OR REPLACE
PROCEDURE P_REPLACE IS
v_sql VARCHAR2(2000);
CURSOR cur IS SELECT * FROM user_tab_cols;
tableinfo user_tab_cols%rowtype;
BEGIN
OPEN cur;
LOOP
FETCH cur INTO tableinfo;
EXIT WHEN cur%notfound;
v_sql:='UPDATE '||tableinfo.table_name||' SET '||tableinfo.column_name||'='||'replace('||tableinfo.column_name||','||''''||'-'||''''||','||''''||''''||')';
dbms_output.put_line(v_sql);
EXECUTE IMMEDIATE v_sql;
COMMIT;
END LOOP;
EXCEPTION WHEN others THEN
dbms_output.put_line(SQLERRM);
CLOSE cur;
END P_REPLACE;

时间: 2024-07-30 04:45:20

Oracle-CURSOR及EXECUTE IMMEDIATE使用的相关文章

oracle cursor 用法总结

PL sql中cursor用法是非常广泛的,常常用于存储过程和函数的返回值,其中用于函数的返回值变相的解决了pl sql 没有表值函数的问题,一般的,在java 调用存储过程,所返回的结果集也是用游标去存储的. 游标分为动态游标和静态游标 1,动态游标定义分两种方式一种是先定义自定义类型如 Type my_cursor is ref cursor .这样就可以定义了一个游标类型,然后我们自己的变量就可以用这个自定义类型去定义了,如 cursorDemo my_cursor (直接用系统自带的sy

转 oracle cursor 游标

转自:http://blog.csdn.net/liyong199012/article/details/8948952 游标的概念:     游标是SQL的一个内存工作区,由系统或用户以变量的形式定义.游标的作用就是用于临时存储从数据库中提取的数据块.在某些情况下,需要把数据从存放在磁盘的表中调到计算机内存中进行处理,最后将处理结果显示出来或最终写回数据库.这样数据处理的速度才会提高,否则频繁的磁盘数据交换会降低效率. 游标有两种类型:显式游标和隐式游标.在前述程序中用到的SELECT...I

Oracle Cursor的使用

When Oracle Database executes a SQL statement, it stores the result set and processing information in an unnamedprivate SQL area. A pointer to this unnamed area, called acursor, lets youretrieve the rows of the result set one at a time.Cursor attribu

oracle cursor(静态)记录

游标定义:游标(Cursor)是处理数据的一种方法,为了查看或者处理结果集中的数据,游标提供了在结果集中一次一行或者多行前进或向后浏览数据的能力.可以把游标当作一个指针,利用游标可以返回它当前指向的行记录(只能返回一行)若要返回多行,则需要不断的滚动,把想要的数据全部查询一遍.游标可以指定结果中的任何位置,然后允许用户对指定位置的数据进行处理.游标的优点:1)允许程序对由查询语句select返回的行集合中的每一行执行相同或不同的操作,而不是对整个行集合执行同一个操作.2)提供对基于游标位置的表中

Oracle cursor

--游标分2种类型: --静态游标:结果集已经存在(静态定义)的游标,分为隐式和显示游标 隐式游标:所有DML语句为隐式游标,通过隐式游标属性可以获取SQL语句信息 显示游标:用户显示声明的游标,即指定结果集,当查询返回结果超过一定行时,就需要一个显示游标 --REF 游标:动态关联结果集的临时对象 -强类型:带return类型 -弱类型: 不带return类型 --隐式游标 --在PL/SQL中编写的每条SQL 语句实际上都是隐匿游标.通过在DML操作后使用SQL%ROWCOUNT属性,可以

Oracle Cursor用法总结

cursor分为三种,一是直接声明为cursor变量,二是首先声明类型再声明变量,三是声明为sys_refcursor. (1)直接声明 declare cursor emp_cur  is select *  from emp; emp_record emp%rowtype; begin open emp_cur; loop fetch emp_cur  into emp_record; exit when  emp_cur%notfound; dbms_output.put_line('na

oracle 存储过程及REF CURSOR的使用

基本使用方法及示例 1.基本结构: CREATE OR REPLACE PROCEDURE 存储过程名字 (参数1 IN NUMBER,参数2 IN NUMBER) AS 变量1 INTEGER :=0; 变量2 DATE; BEGIN END 存储过程名字 2.无参形式的procedure: --无参procedure create or replace procedure pro_no_param is begin dbms_output.put_line('the procedure wi

java连接oracle数据库调用存储过程实现分页查询(emp为例)

第一步:建一个含游标类型的包 sql>create or replace package testPackage as type test_cursor is ref cursor;    --定义名为test_cursor 的游标 end testPackage; 第二步:编写分页的存储过程 sql>create or replace procedure fenYe( tableName in varchar2,--表名 pageSize in number,--每页显示的记录数 pageN

PL/SQL和Oracle对象

PL/SQL -一.变量 01)引用变量 -- 查询并打印7839的姓名和薪水 declare    --定义变量保存姓名和薪水    --pename varchar2(20);    --psal   number;    pename emp.ename%type;    psal   emp.sal%type; begin   -- 得到1234的姓名和薪水   select ename,sal into pename,psal from emp where empno=1234;   

Oracle 动态sql 实现方式

1 /******************************************************************* 2 Sample Program 10: Dynamic SQL Method 4 3 4 This program connects you to ORACLE using your username and 5 password, then prompts you for a SQL statement. You can enter 6 any leg