-----------------------动态创建序列的脚本---------------------------
declare
type num_list is varray(14) of varchar2(8);
-- 老师表、学生表
xz num_list := num_list('TEACHER','STUDENT');
maxid integer:=1;
have integer;
begin
for i in 1..xz.count
loop --循环
execute immediate 'select count(1) from all_sequences where sequence_name = ''SEQ_'|| xz(i) ||'_X_OID''' into have;
if have=0 then
execute immediate 'select nvl(max(x_oid),1)+1 from gddbms.' || xz(i) into maxid;
execute immediate 'create sequence gddbms.seq_'|| xz(i) ||'_x_oid start with '
||maxid||' increment by 1 nomaxvalue';
end if;
end loop;
end;
/
-----------------------动态删除序列的脚本---------------------------
declare
type num_list is varray(18) of varchar2(8);
xz num_list := num_list('TEACHER','STUDENT');
maxid integer:=1;
have integer;
begin
for i in 1..xz.count
loop --循环
execute immediate 'select count(1) from all_sequences where sequence_name = ''SEQ_'|| xz(i) ||'_X_OID''' into have;
if have>0 then
execute immediate 'drop sequence gddbms.seq_'|| xz(i) ||'_x_oid';
end if;
end loop;
end;

总结一下这里面大概有如下几个知识点:
1.num_list是定义的一个数组类型,xz是这个类型的一个对象,for用于循环xz对象。
2.execute immediate用于动态执行一串sql语句。
3.execute immediate **** into *** 用于将执行的结果赋值给某个变量。
4.if xxx then xxxx end if 就是if条件判断。
5.如上,我们每个语句之间用斜杠(/)分割,在pl/sql中能正确执行,同时程序通过斜杠分割之后也能够正确执行。

Oracle动态执行脚本创建序号的更多相关文章

  1. Oracle批量执行脚本文件

    以下是Oracle批量执行脚本文件的步骤和方法 1.创建脚本文件(xx.sql): 例如文件CreateTable Create table tb1( id varchar2(30), Name va ...

  2. c# 动态执行脚本,相关的几个脚本引擎.

    Jint   嵌入式的javascript脚本支持引擎,一直都在更新,对各种方法支持也比较好,可以 C# 交互. https://github.com/sebastienros/jint Jurass ...

  3. Oracle动态执行语句

      一.为什么要使用动态执行语句? 由于在PL/SQL 块或者存储过程中只支持DML语句及控制流语句,并不支持DDL语句,所以Oracle动态执行语句便应允而生了.关于DDL与DML的区别,请参见:D ...

  4. Oracle动态执行表不可访问解决方法

    在scott 用户下,执行查询语句是出现“Oracle动态执行表不可访问” 经查,是因为用户权限不够所致,修改scott用户权限语句如下: grant select on V_$session to ...

  5. Oracle动态执行表不可访问

    在scott 用户下,执行查询语句是出现"Oracle动态执行表不可访问" 经查,是因为用户权限不够所致,修改scott用户权限语句如下: grant select on V_$s ...

  6. [转]ORACLE 动态执行SQL语句

    本文转自:http://zhaisx.iteye.com/blog/856472 Oracle 动态SQLOracle 动态SQL有两种写法:用 DBMS_SQL 或 execute immediat ...

  7. ORACLE 动态执行SQL语句

    本文转自 http://zhaisx.iteye.com/blog/856472 Oracle 动态SQL Oracle 动态SQL有两种写法:用 DBMS_SQL 或 execute immedia ...

  8. oracle数据库执行脚本常用命令总结

    1. 执行一个SQL脚本文件 代码如下 复制代码 sqlplus user/pass@servicename<file_name.sql或SQL>start file_names或SQL& ...

  9. 在Oracle中执行动态SQL的几种方法

    转载:在Oracle中执行动态SQL的几种方法 以下为内容留存: 在Oracle中执行动态SQL的几种方法 在一般的sql操作中,sql语句基本上都是固定的,如:SELECT t.empno,t.en ...

随机推荐

  1. H2数据库启动提示8082端口被占用

    The Web Console server could not be started. Possible cause: another server is already running at ht ...

  2. C#实现10进制转2进制

    这几天在复习计算机原理,看到二进制忽然想到二进制转10进制的公式,然后转念一想10进制转二进制的公式好像没印象,那索性自己写出来. 结果学渣的我发现,并不能写出来!什么数列,对数,xx函数忘得一干二净 ...

  3. HAL UART DMA 数据收发

    UART使用DMA进行数据收发,实现功能,串口2发送指令到上位机,上位机返回数据给串口2,串口2收到数据后由串口1进行转发,该功能为实验功能 1.UART与DMA通道进行绑定 void HAL_UAR ...

  4. 最简单之安装azkaban

    一,拉取源码构建 git clone https://github.com/azkaban/azkaban.git cd azkaban; ./gradlew build installDist 二, ...

  5. metal feature and specification

    https://developer.apple.com/metal/Metal-Feature-Set-Tables.pdf 宝贝 https://developer.apple.com/metal/ ...

  6. Load store and memoryless

    metal https://developer.apple.com/library/archive/documentation/3DDrawing/Conceptual/MTLBestPractice ...

  7. mysqldump表损坏问题

    遇到的问题:mysqldump: Error 1194: Table 'user' is marked as crashed and should be repaired when dumping t ...

  8. 添加Mybatis

  9. 第四届西安邮电大学acm-icpc校赛 猜球球

    题目描述 六一到了,为了庆祝这个节日,好多商家都推出了很多好玩的小游戏.Tongtong看到了一个猜球球的游戏,有n种除了颜色之外完全相同的球,商家从中拿出来一个球球放到了箱子里,已知第i种颜色的球出 ...

  10. Java 面试题 二

    1.线程怎么保持同步 关于线程同步(7种方式) --如果朋友您想转载本文章请注明转载地址"http://www.cnblogs.com/XHJT/p/3897440.html"谢谢 ...