首页 > 数据库 >Oracle存储过程的基本学习

Oracle存储过程的基本学习

时间:2023-05-15 19:34:31浏览次数:31  
标签:存储 END name cnt 学习 STR Oracle col

Oracle存储过程的基本学习


摘要

这个简要学习应该会分为上下两部分
第一部分是存储过程的学习. 
第二部分是python的学习. 

核心目标是查询Oracle数据库中的主键数据.
如果有主键upper之后相同的数据查询出来.并且进行展示
避免部分数据迁移时出现问题. 

存储过程的语法以及主要注意事项-调试注意事项

建议将serveroutput 打开.
将 linesize和 pagesize 尽量加大一些. 
这样可以保证数据的显示和使用. 

SET SERVEROUTPUT ON;
set pagesize 10000;
set linesize 10000;

注意 SERVEROUTPUT ON 
是打开输出. 不打开:
DBMS_OUTPUT.PUT_LINE("Hello world")
是无法打印的. 
SET SERVEROUTPUT ON
exec DBMS_OUTPUT.PUT_LINE('Hello')

定义存储过程

SET SERVEROUTPUT ON;
set pagesize 10000;
set linesize 10000;
CREATE OR REPLACE PROCEDURE duplicationcheck
AS 
  STR VARCHAR2(5000);
  col_name VARCHAR2(100);
  col_cnt int;
  CURSOR TEMP IS  
  SELECT table_name, column_name 
 FROM   zhaobsh003 ;
BEGIN
    dbms_output.enable(1000000);
    FOR S IN TEMP LOOP
      STR := 'select count(upper('||S.column_name||')) as '||S.table_name||', upper('||S.column_name||') from '||S.table_name||' group by upper('||S.column_name||') having count(upper('||S.column_name||')) >1 ' ; 
     BEGIN
      EXECUTE IMMEDIATE STR into col_cnt,col_name; 
     EXCEPTION
       when others then 
       null ; 
     END;   
      dbms_output.put_line(S.table_name||': '||col_name||' '||col_cnt);
 END LOOP;
END duplicationcheck;
/
exec duplicationcheck ; 

存储过程的简单说明

CREATE OR REPLACE PROCEDURE something
# 创建存储过程的语法
AS
  STR VARCHAR2(5000);
  col_name VARCHAR2(100);
  col_cnt int;
# 定义变量
CURSOR TEMP IS 
SELECT TABLE_NAME,COLUMN_NAME FROM ZHAOBSH003
# 将变量注入到具体的变量里面去 CURSOR的游标处理. 
BEGIN
    # 这个开始循环, 将游标里面的内容进行循环. 
    FOR S IN TEMP LOOP
        STR := 'XXX';
    # 这个进行异常判断. 避免中断
    BEGIN
        EXECUTE IMMEDIATE STR into col_cnt,col_name;    
    EXCEPTION
    # 异常处理
         WHEN OTHERS THEN 
       NULL ; 
    END;
    # 打印出具体的结果
    dbms_output.put_line(S.table_name||': '||col_name||' '||col_cnt);
    # 对应LOOP 的终止
 END LOOP;
# 对应最上面的BENGIN进行终止.
END duplicationcheck;
/
# 这个命令是执行存储过程
exec duplicationcheck ; 

标签:存储,END,name,cnt,学习,STR,Oracle,col
From: https://www.cnblogs.com/jinanxiaolaohu/p/17402853.html

相关文章

  • C#学习之time控件和timer_tick事件
    https://blog.csdn.net/ycigwy/article/details/70242669Timer控件:Timer控件只有绑定了Tick事件,和设置Enabled=True后才会自动计时,停止计时可以用Stop()控制,通过Stop()停止之后,如果想重新计时,可以用Start()方法来启动计时器。Timer控件和它所在的Form属于同一个线程;timer1_Tick:......
  • 使用 Easysearch,日志存储少一半
    在海量日志存储场景中,索引膨胀率是一个关键指标,直接影响存储成本和查询性能。它表示原始数据与索引数据在磁盘上所占空间的比率。较高的索引膨胀率不仅增加了存储成本,而且可能会影响查询速度,尤其是在I/O密集型的查询中。因此,我们需要密切关注和优化索引膨胀率。接下来,我们将比较......
  • Logstash关于日志清洗记录学习及应用
    logstash日志清洗:日志清洗任务,给了我乱七八糟资料之后看的一脸懵,最后决定自己动手整理整理这样有头绪点,记录一下自己学习过程。其中涉及到一些ip内容的我都改为ip,其他保持一致,欢迎大家一起讨论,我也是刚开始学习这个,如有写的不对请多指教。一、学习阶段1、首先理解logstash中各个......
  • DOT 学习笔记
    开始大恶补图论了。说句闲话,\(\text{ODT}\)和\(\text{DOT}\)。\(\text{DOT}\),全称「树上启发式合并(\(\text{dsuontree}\))」,乍一听这个算法十分有智慧的样子,实际上也确实是一个人类智慧,他的本质就是「离线+节点合并」,听着复杂度似乎很扯,但是实际上它是正确的,但是我不会证明......
  • python基础学习-读写CSV文件
    CSV文件介绍参考:Python-Core-50-Courses/第23课:用Python读写CSV文件.mdatmaster·jackfrued/Python-Core-50-Courses(github.com)CSV 全称逗号分隔值文件是一种简单、通用的文件格式,被广泛的应用于应用程序(数据库、电子表格等)数据的导入和导出以及异构系统之间的数据......
  • python基础学习-用Python操作Word和PowerPoint
    参考链接:Python-Core-50-Courses/第26课:用Python操作Word文件和PowerPoint.mdatmaster·jackfrued/Python-Core-50-Courses(github.com)......
  • python基础学习-用Python读写Excel文件
    参考链接:Python-Core-50-Courses/第24课:用Python读写Excel文件-1.mdatmaster·jackfrued/Python-Core-50-Courses(github.com)Python-Core-50-Courses/第25课:用Python读写Excel文件-2.mdatmaster·jackfrued/Python-Core-50-Courses(github.com)......
  • 天鹰优化算法AO优化核极限学习机KELM参数做多输入单输出的拟合预测建模。
    天鹰优化算法AO优化核极限学习机KELM参数做多输入单输出的拟合预测建模。程序内注释详细直接替换数据就可以使用。程序语言为matlab。程序直接运行可以出拟合预测图,迭代优化图,多个预测评价指标。ID:9340689735052218......
  • 鲸鱼优化算法WOA优化卷积神经网络CNN的学习率和隐含层神经元个数做多输入单输出的拟合
    鲸鱼优化算法WOA优化卷积神经网络CNN的学习率和隐含层神经元个数做多输入单输出的拟合预测建模。程序内注释详细直接替换数据就可以使用。程序语言为matlab。程序直接运行可以出拟合预测图,迭代优化图,线性拟合预测图,多个预测评价指标。。PS:以下效果图为测试数据的效果图,主要目的......
  • 修改 Docker 的默认存储路径
    通过修改Docker配置文件的方式来修改Docker数据存储路径,以减少系统盘的占用空间。1、停止Docker服务systemctlstopdocker2、备份当前的Docker数据存储目录/var/lib/dockermv/var/lib/docker/var/lib/docker.bak3、创建新的Docker数据存储目录,例如/data/doc......