精华内容
下载资源
问答
  • 应用场景: 某软件系统中数据库因为版本不断升级,需要定期导入最新数据表结构到测试数据库中的不同表空间进行测试.导入时候容易出现主键约束丢失问题.因此设计下面脚本来实现批量新增主键约束功能. 具体操作...

    应用场景: 某软件系统中的数据库因为版本不断升级,需要定期导入最新的数据表结构到测试数据库中的不同表空间进行测试.导入的时候容易出现主键约束丢失问题.因此设计下面的脚本来实现批量新增主键约束功能.

    具体操作步骤如下:

    一、使用PL/SQL Developer工具连接上服务器上的某个数据库,按F8执行下面的脚本获取到最终要添加主键的SQL语句。

    --Oracle使用游标给所有数据表添加主键约束
    declare 
    mytablename NVARCHAR2(200):=''; --定义要查询的数据表名称变量 
    commentsql VARCHAR2(2000):=''; --定义要输出的执行语句字符串变量  
    mytablekey NVARCHAR2(20):='ID'; --定义要查询的数据表主键字段名称变量 
    cursor mycursor is select table_name from user_tables order by table_name;--定义游标      
    myrecord mycursor%rowtype;  --定义游标记录类型   
    Counter int :=0;   
    begin   
    open mycursor;  --打开游标   
    if mycursor%isopen  then  --判断打开成功   
    loop --循环获取记录集     
      fetch mycursor into myrecord;
      
      if mycursor%found then  --游标的found属性判断是否有记录  
      begin  
        mytablename:=myrecord.table_name;
        commentsql:='alter table '||mytablename||' add constraint PK_'||mytablename||' primary key ('||mytablekey||');';
        dbms_output.put_line(commentsql);      
        --execute immediate commentsql;--立即执行语句(因为很多表主键字段不是ID容易报错所以注释掉)
        --commit;    
      end;   
      else
      exit; --获取游标中的记录     
      
      end if;
    end loop;   
    else     
    dbms_output.put_line('游标没有打开');   
    end if; 
    close mycursor;  --关闭游标   
    end;
     

    二、切换到PL/SQL Developer工具的输出选项卡,复制最终执行语句到新的SQL窗口。

    三、执行添加主键约束脚本 。

    四、补充说明:本例测试用的数据库中所有数据表字段中都有一个名称为ID的字段,执行多次后会提示一个数据表只能具有一个主键错误。

    展开全文
  • 2、使用游标的步骤 (1)声明 使用declare进行声明 declare 游标名 cursor for select_statement (2)打开游标 使用open进行打开 open 游标名 (3)从游标取值 使用fetch进行取值 fetch 游标名 into var1,...
  • 4. 把数据库中的数据读取到Matlab中——fetch 调用格式: curs=fetch; Data=curs.Data;%把读取到数据用变量Data保存. 如curs=fetch; 把所有数据一次全部读取到Matlab中,RowLimit为每次读取数据参数...
  • 4. 把数据库中的数据读取到Matlab中——fetch 调用格式: curs=fetch; Data=curs.Data;%把读取到数据用变量Data保存. 如curs=fetch; 把所有数据一次全部读取到Matlab中,RowLimit为每次读取数据参数...
  • 4. 把数据库中的数据读取到Matlab中——fetch 调用格式: curs=fetch; Data=curs.Data;%把读取到数据用变量Data保存. 如curs=fetch; 把所有数据一次全部读取到Matlab中,RowLimit为每次读取数据参数...
  • 4. 把数据库中的数据读取到Matlab中——fetch 调用格式: curs=fetch; Data=curs.Data;%把读取到数据用变量Data保存. 如curs=fetch; 把所有数据一次全部读取到Matlab中,RowLimit为每次读取数据参数...
  • 4. 把数据库中的数据读取到Matlab中——fetch 调用格式: curs=fetch; Data=curs.Data;%把读取到数据用变量Data保存. 如curs=fetch; 把所有数据一次全部读取到Matlab中,RowLimit为每次读取数据参数...
  • 在操作数据库时,我们时常需要给数据库中的表名以及字段名添加注释,如果去写comment语句,或者是直接拼出来一条一条去执行,亦或者使用一些可视化工具去添加,都太过于繁琐。 在此背景下,我想到了一个比较方便...

    在操作数据库时,我们时常需要给数据库中的表名以及字段名添加注释,如果去写comment语句,或者是直接拼出来一条一条去执行,亦或者使用一些可视化工具去添加,都太过于繁琐。

    在此背景下,我想到了一个比较方便的、节省成本的方法与大家分享,就是维护一个注释表,然后编写一个存储过程,存储过程中自动拼成一条一条的comment sql语句,然后利用游标去循环执行,效率非常高,而且维护起来也方便,具体操作步骤如下:

    1、建注释表

    create table TABCOL_COMMENTS
    (
      TAB_NAME     VARCHAR2(500),
      TAB_COMMENTS VARCHAR2(500),
      COL_NAME     VARCHAR2(500),
      COL_COMMENTS VARCHAR2(500)
    )
    tablespace BIGDATA_STG
      pctfree 10
      initrans 1
      maxtrans 255
      storage
      (
        initial 256
        next 256
        minextents 1
        maxextents unlimited
        pctincrease 0
      );
    -- Add comments to the columns 
    comment on column TABCOL_COMMENTS.TAB_NAME
      is '表名';
    comment on column TABCOL_COMMENTS.TAB_COMMENTS
      is '表注释';
    comment on column TABCOL_COMMENTS.COL_NAME
      is '字段名';
    comment on column TABCOL_COMMENTS.COL_COMMENTS
      is '字段注释';

    2、编写存储过程

    create or replace procedure PORC_COMMENT is
     v_log varchar2(1000);
     CURSOR CUR_SQL IS
    
    with A as
    (select upper(tab.tab_name) as tab_name, tab.tab_comments, upper(tab.col_name) as col_name,tab.col_comments
    from tabcol_comments tab),
    
    --字段注释
    B as
    (SELECT 'comment on column ' || tab_name || '.' || col_name || ' is ''' || col_comments || ''''  as sqls
    from A),
    
    --表注释
    C as
    (select'comment on table ' || tab_name || ' is ''' || tab_comments || '''' as sqls
    from A),
    D as 
    (select distinct sqls from C)
    select sqls from B
    union all
    select sqls from D;
    
    begin
    
    execute immediate 'truncate table tabcol_comments_log';
    for cur_s in CUR_SQL LOOP
    insert into tabcol_comments_log (v_log) values(cur_s.sqls);
    commit;
    execute immediate cur_s.sqls;
    
    end LOOP;
    
    END PORC_COMMENT;
    

     

    展开全文
  • 该例子针对上次SQL实现分页公式使用的详细说明--说明具体在函数怎样使用分页公式和SQL怎样在游标中返回说明,然后JDBC怎样捞取数据,然后通过Servlet与JSP显示出来。当然该函数可以由读者进一步完成,我主要是...
  • 讲解SQL语言的应用,提供了近500个曲型应用,读者可以随查随用,深入讲解SQL语言的各种查询语句,详细介绍数据库设计及管理,详细讲解存储过程、解发器和游标等知识,讲解了SQL语言在高级语言中的具体应用。...
  •  3.2.7 在DDL,DML语句中使用子查询  3.3 维护数据  3.3.1插入数据  3.3.2 更新数据  3.3.3 删除数据  3.4 事务与事务控制  3.4.1 事务概念  3.4.2 事务控制基本语句及其功能  3.4.3 事务...
  • 19.2.4 嵌入式SQL中使用游标  19.3 检索、操作SQL数据  19.3.1 不需要游标的SQL DML操作 19.3.2 使用游标的SQL DML操作 19.3.3 动态SQL技术  19.4 SQL Server中嵌入式SQL的编译运行 19.4.1 嵌入式SQL代码...
  • 精通SQL--结构化查询语言详解

    千次下载 热门讨论 2011-12-11 16:35:41
    10.3.3 在having子句中使用相关子查询 201 10.4 嵌套子查询 203 10.5 使用子查询创建视图 204 10.6 树查询 205 第11章 数据插入操作 209 11.1 插入单行记录 209 11.1.1 基本语法 209 11.1.2 整行插入 209 ...
  • 修改初始化参数文件中的部分参数(以修改游标数量为例子)查看当前游标数量修改当前实例open_cursors5.在现有控制文件基础上,为数据库再添加一个控制文件。给出具体实现和验证步骤。6.备份控制文件,并查看所备份...

    前言

    实验四也是很简单的一个实验,按照命令顺序执行下来,基本上 半小时之内可以做完。大家加油!
    在这里插入图片描述

    1.采用不同的方法查询Oracle数据库当前使用的初始化参数文件和控制文件。

    show parameter spfile;
    show parameter control files;
    select value from v$parameter where name='spfile';
    select value from v$parameter where name='control_files';
    
    

    运行截图
    在这里插入图片描述

    2.从spfile创建pfile

    说明: ‘d:\spfile_sy1_A.ora’ 为你自己想要创建的spfile文件名字
    ‘d:\pfile_sy1_A.ora’ 为pfile名字

    create pfile='d:\pfile_sy1_A.ora' from spfile;
    

    从当前实例创建pfile

    create pfile='d:\pfile_sy1_B.ora' from memory;
    

    运行截图
    在这里插入图片描述
    查看创建的文件
    在这里插入图片描述

    3.创建spfile

    create spfile='d:\spfile_sy1_A.ora' from pfile='d:\pfile_sy1_A.ora';
    

    从当前实例创建spfile

    create spfile='d:\spfile_sy1_B.ora' from memory;
    

    运行截图
    在这里插入图片描述
    查看创建的文件
    在这里插入图片描述

    4.修改初始化参数文件中的部分参数(以修改游标数量为例子)

    查看当前游标数量

    SELECT v.name, v.value value FROM V$PARAMETER v WHERE name = 'open_cursors';
    

    修改当前实例的open_cursors

    alter system set open_cursors=600 scope=memory;
    

    运行截图
    在这里插入图片描述

    5.在现有控制文件基础上,为数据库再添加一个控制文件。给出具体实现和验证步骤。

    先用上面的命令找到当前实例的控制文件,然后复制其中任意一个控制文件并重命名,这里以’CONTROL01.CTL’,'CONTROL02.CTL’为例,我复制了 ‘‘CONTROL02.CTL’’ 控制文件,并且重命名为 ‘‘CONTROL03.CTL’’

    1. 先执行下面这条命令 , 其中的.CTL文件名,需要用你们自己的
    alter system set control_files='G:\oracle_jimulu\oradata\ORACLE_SY1\CONTROL01.CTL','G:\oracle_jimulu\oradata\ORACLE_SY1\CONTROL02.CTL','G:\oracle_jimulu\oradata\ORACLE_SY1\CONTROL03.CTL' scope=spfile;
    
    1. 再执行下面的命令,关闭数据库
    shutdown immediate;
    
    1. 先打开控制文件所在的文件,按照下图操作
      在这里插入图片描述
    2. 然后再启动即可
    startup;
    

    运行截图
    在这里插入图片描述

    6.备份控制文件,并查看所备份的文件。

    执行下面命令,找到备份的文件即可。

    alter database backup controlfile to 'D:\backup_controfiles\sy1_control_A.ctl';
    alter database backup controlfile to trace as 'D:\backup_controfiles\sy1_control_A.sql';
    

    在这里插入图片描述
    在这里插入图片描述

    总结

    这节实验课老师讲了很多关于 oracle 数据库实例启动的 步骤和对应的状态,考试都会考到,而且分值占比很高,听说至少有 20 分是考这方面的内容,所以大家要重视。希望学到的童鞋们可以给博主点个赞!👍👍!


    坚持分享,坚持原创,喜欢博主的靓仔靓女们可以看看博主的首页博客!
    您的点赞与收藏是我分享博客的最大赞赏!
    博主博客地址: https://blog.csdn.net/weixin_43967679

    展开全文
  •  您可以在任何SQL或PL/SQL源文件中使用To-Do条目快速记录该文件中那些需要进行事项。以后能够从To-Do列表中访问这些信息,访问操作可以在对象层或工程层进行。 对象浏览器  可配置树形浏览能够显示同PL/SQL...
  • PLSQLDeveloper下载

    2012-05-04 11:30:27
    这样,如果需要编译所有工程条目或者将工程从某个位置或数据库移动到其他位置时,所需工程条目查找就变得比较简单, To-Do条目——您可以在任何SQL或PL/SQL源文件中使用To-Do条目快速记录该文件中那些需要进行...
  • [Oracle.11g权威指南(第2版)].谷长勇.扫描版.pdf

    千次下载 热门讨论 2013-06-23 21:16:09
    7.3.2 使用游标的FOR循环 178 7.3.3 使用游标变量 180 7.3.4 游标变量实例 187 7.3.5 使用游标表达式 191 7.4 Oracle 11gPL/SQL的新特性 192 7.5 本章小结 194 第三部分 Oracle客户端工具 第8章 SQL*Plus工具介绍...
  • SQL全称是Structured Query Language(结构化查询语言),是关系数据库中最常用语言。SQL不仅可以管理数据库中的数据而且可以管理关系数据库本身,还可以通过交互式客户端应用程序直接访问SQL数据库。本书从SQL...
  • Microsoft_SQL_Server_2005技术内幕:T-SQL查询.pdf

    千次下载 热门讨论 2012-06-23 13:18:33
    它们将向你揭示基于集合(set-based)查询的强大威力,并解释为什么它比使用游标的过程化编程(procedural programming)更具优势。同时,它还会教你识别使用基于游标解决方案与基于集合解决方案的优劣。  书还...
  • php网络开发完全手册

    热门讨论 2009-03-02 13:17:26
    16.2 数据库中的程序逻辑与数据关系 262 16.3 存储过程设计 263 16.3.1 定界符重定义 263 16.3.2 存储过程创建与调用 264 16.3.3 存储过程参数 265 16.3.4 复合语句 267 16.3.5 变量 268 16.3.6 条件语句 ...
  • 7.9.5 在OEM中使用RMAN 207 7.9.6 执行备份 209 7.9.7 还原和恢复 210 7.10 本章测验 213 第8章 高可用性:RAC、ASM和 Data Guard 215 8.1 高可用性定义 216 8.2 了解RAC 216 8.3 安装RAC 217 8.4 测试RAC ...
  • javaSE代码实例

    2016-06-21 22:30:18
    17.3.4 ReentrantReadWriteLock读/写锁的具体使用 391 17.4 信号量的使用 393 17.4.1 Semaphore类简介 393 17.4.2 Semaphore类的具体使用 394 17.5 队列 396 17.5.1 Queue接口介绍 396 17.5.2 ...
  • ORACLE用户是学习ORACLE数据库中的基础知识,下面就介绍下类系统常用默认ORACLE用户: 1. sys用户:超级用户,完全是个SYSDBA(管理数据库人)。拥有dba,sysdba,sysoper等角色或权限。是oracle权限最高用户,...
  • JAVA面试题最全集

    2010-03-13 13:09:10
    9.Java访问数据库的步骤,Statement和PreparedStatement之间区别。 10.找出下列代码可能存在错误,并说明原因: 二、JSP&Servlet技术 1.描述JSP和Servlet区别、共同点、各自应用范围 2.在Web开发...
  • 此次将长期思考、感悟,多年系统开发、设计和团队管理经验,以及深入分析众多项目实战宝贵成果和盘托出,力求将编程思想与具体实践融为一体,提炼出适合于广大读者快速理解和彻底掌握.NET软件开发最佳学习...

空空如也

空空如也

1 2
收藏数 36
精华内容 14
关键字:

数据库中使用游标的具体步骤