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

/*
    小弟刚刚接触ORACLE存储过程,有一个问题向各位同行求教,小弟写了一个存储过程,其目的是接收一个参数作为表名,然后查询该表中的全部记录的某一个字段的内容导入到另一个表中。
    (
    tabname in varchar
    )
    is
    v_servicesname tabname.服务类型%type; --这个变量就是用来存放所要取得的字段内容,但不知该如何定义
    cursor curSort1 is select 服务类型 from tabname order by 编码; --此语句也不对提示找不到表名

    begin
    .....
    end getservicesname1;
        An example:

        create or replace procedure cal(tb varchar2) is
        id pls_integer;
        total pls_integer := 0;
        type emp_cur is ref cursor;
        cur emp_cur;
        begin
        open cur for 'select employee_id from ' || tb;
        loop
        fetch cur into id;
        exit when cur%notfound;

        total := total + id;
        end loop;
        close cur;

        dbms_output.put_line(total)
        end;*/

时间: 2024-11-01 09:29:10

在Oracle PL/SQL中游标声明中表名动态变化的方法_Oracle应用的相关文章

Oracle PL/SQL中如何使用%TYPE和%ROWTYPE

1. 使用%TYPE 在许多情况下,PL/SQL变量可以用来存储在数据库表中的数据.在这种情况下,变量应该拥有与表列相同的类型.例如,students表的first_name列的类型为VARCHAR2(20),我们可以按照下述方式声明一个变量:  代码如下 复制代码 DECLARE v_FirstName VARCHAR2(20); 但是如果first_name列的定义改变了会发生什么(比如说表改变了,first_name现在的类型变为VARCHAR2(25))?那就会导致所有使用这个列的PL/

oracle PL/SQL中的重载

在java中,有方法重写,方法重载,重载的一个典型例子就是类中的构造函数,可以根据自己的需求定义多个构造函数,默认是一个无参数的空函数. 重写是基于父类子类之间的多态性体现上,父类的一个方法,在子类中可以重写. oracle中也可以有重载的实现.自己在总结的时候归纳了一下两种. 一种是通过包来实现,一种是通过pl/sql块来实现.相比两者的实现,包是静态的,而pl/sql块是动态的. 可以通过如下的例子来说明一下. 我们现在又一个需求,需要根据输入的参数得到对应的累计值,输入的参数从2个到4个不

Oracle日常维护中管理用户以及重做日志文件的方法_oracle

一.管理用户和安全性在db中各种对象以 用户(方案) 的方式组织管理 select distinct object_type from dba_objects;         模式对象,schema ----> user.objects(某个用户下的某个对象) 在创建对象和访问对象前,首先创建对象的拥有者--用户         所有的对象在用户下 用户有相关的属性,有些必须明确设置,有些可以使用默认值         常见属性:用户名.口令.默认表空间(可默认).临时表空间(可默认).账户状

有关oracle pl/sql编程中游标和循环的问题

问题描述 有关oracle pl/sql编程中游标和循环的问题 题目: 使用循环和游标实现,查询部门编号为10的员工信息,将查询结果按照员工编号从大到小的顺序排列,输出倒数第二行记录. 我的代码: declare empler emp%rowtype; i number:=0; n number; cursor emp_2 is select * from emp where deptno=10 order by empno desc; begin select count(*) into n

[推荐]ORACLE PL/SQL编程之四:把游标说透(不怕做不到,只怕想不到)

原文:[推荐]ORACLE PL/SQL编程之四:把游标说透(不怕做不到,只怕想不到) [推荐]ORACLE PL/SQL编程之四: 把游标说透(不怕做不到,只怕想不到)       继上两篇:ORACLE PL/SQL编程之八:把触发器说透             ORACLE PL/SQL编程之六:把过程与函数说透(穷追猛打,把根儿都拔起!)  得到了大家的强力支持,感谢.接下来再下猛药,介绍下一篇,大家一定要支持与推荐呀~!我也才有动力写后面的.     本篇主要内容如下: 4.1 游标概

Oracle中PL/SQL中if语句的写法介绍

以下是对Oracle中PL/SQL中if语句的写法进行了详细的分析介绍,需要的朋友可以过来参考下   复制代码 代码如下: /* If语句: 判断用户输入的数字. */ set serveroutput on --接收键盘输入 accept num prompt '请输入一个数字:'; declare   --将屏幕输入的数字付给变量   pnum number := # begin   if pnum = 0 then dbms_output.put_line('您输入的是0');   end

Oracle或者Pl/Sql中001与1一样吗?

今天写了一个插入语句,往表C中插入数据.insert into 表名(列名) values () where A.列aa=B.列bb;      但半天没反应,select aa from A;select bb from B,发现存在相等的值      A中的aa是1,2,3:B中是001,002,003 解决:把1改为001,2改为002,3改为003后问题解决,从此可以看出001与1在Oracle或者Pl/Sql中是不一样的!     这个问题很可能是由于在数据库中这个字段是字符型的,导致

《Oracle PL/SQL程序设计(第5版)》一一2.6 在其他语言中调用PL/SQL

2.6 在其他语言中调用PL/SQL Oracle PL/SQL程序设计(第5版) 总有一天,你会在从C.Java.Perl.PHP或其他语言中调用PL/SQL.虽然这是一个很合理的需求,如果你曾经做过跨语言的开发工作,你一定熟知要把各种语言专有的数据类型糅合在一起─尤其是那些复合数据类型,比如数组.记录或者对象类型─的复杂性,更不用说不同的参数语法或者厂商对所谓"标准"应用编程接口(API)的扩展,比如微软的ODBC(Open Database Connectivity). 我会用几

oracle数据库用pl/sql中的cmd窗口写语句的时候

问题描述 oracle数据库用pl/sql中的cmd窗口写语句的时候 如图所示,如果想回去把第二行的代码删除怎么办?我用删除键根本没有用 解决方案 3 : SQL>del 2 SQL>run 可以去找找SQL/PLUS缓冲区当前命令操作相关资料 解决方案二: SQL>del 2 SQL>run 可以去找找SQL/PLUS缓冲区当前命令操作相关资料