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 ;

Oracle存储过程的基本学习的更多相关文章

  1. Oracle存储过程学习使用

    存储过程创建语法: create or replace procedure 存储过程名(param1 in type,param2 out type) as 变量1 类型(值范围); 变量2 类型(值 ...

  2. ORACLE存储过程学习

    存储过程 1 CREATE OR REPLACE PROCEDURE 存储过程名 2 IS 3 BEGIN 4 NULL; 5 END; 行1: CREATE OR REPLACE PROCEDURE ...

  3. Oracle 存储过程学习

    转自:http://blog.chinaunix.net/uid-20495387-id-174394.html http://www.cnblogs.com/rootq/articles/11000 ...

  4. Oracle存储过程学习备忘

    之前的项目使用存储过程很少,但在实际的项目中,存储过程的使用是必不可少的. 存储过程是一组为了完成特定功能的SQL 语句 集,经编译后存储在数据库中:存储过程创建后,一次编译在程序中可以多次调用,对安 ...

  5. Oracle 存储过程学习笔记

    1.存储过程简单实例 CREATE OR REPLACE PROCEDURE 存储过程名称 (参数in,参数out) AS -- 变量声明,每个声明用分号结束.可以在声明的同时初始化 name ); ...

  6. 用java调用oracle存储过程总结(转)

    //1.call+包名+存储过程名(传入.传出值用?) String str="{call SMSBUSINESS.deleteZhZMember(?,?,?)}"; //2.建立 ...

  7. oracle 存储过程 动态sql语句

    一.在oracle项目开发中越到问题: 在利用ODP向oracle中插入数据时,如果这样写:   insert into clobTable (id, story) values(1,'....'); ...

  8. 用java调用oracle存储过程总结

    以前一直没有动存储过程是用来干嘛的,后来请教朋友才换为自己的理解方式,用自己通俗的语言来说,就是把sql语句换为一个过程,也可以说是一个方法,每次直接给参数调用就好,使用存储过程查询速度快,系统只编译 ...

  9. oracle 存储过程(分析理解)

    我的理解 比较简单(仅供参考)   存储过程就相当于java里面的方法 简单讲就是一串代码能够实现某个特定的功能,想要使用这个方法直接调用方法名就能够使用他的功能,这就是方法 oracle 存储过程也 ...

  10. oracle存储过程(返回列表的存储结合游标使用)总结 以及在java中的调用

    这段时间开始学习写存储过程,主要原因还是因为工作需要吧,本来以为很简单的,但几经挫折,豪气消磨殆尽,但总算搞通了,为了避免后来者少走弯路,特记述与此,同时亦对自己进行鼓励. 以下是我在开发项目中第一次 ...

随机推荐

  1. Flutter Getx 状态管理 --- (依赖管理) GetxController

    Flutter Getx 简单的状态管理(依赖管理) GetxController Getx 依赖管理简介 Get有一个简单而强大的依赖管理器,它允许你只用1行代码就能检索到与你的Bloc或Contr ...

  2. Java 在PDF中绘制形状(基于Spire.Cloud.SDK for Java)

    Spire.Cloud.SDK for Java提供了pdfPathApi接口可用于在PDF文档中绘制形状(或图形),如绘制线条形状drawLine().绘制矩形形状drawRectanglef(), ...

  3. CANN 5.0硬核技术抢先看

    摘要:2021年12月,CANN5.0版本也将与大家正式见面,通过软硬件协同优化,该版本将会实现训练性能再翻倍,凭实力展现AI领域的「中国速度」! 本文分享自华为云社区<CANN 5.0硬核技术 ...

  4. 信创就用国产的生态,Solon v2.6.4 发布

    Solon 是什么框架? Java 新的"生态级"应用开发框架.从零开始构建,有自己的标准规范与开放生态(历时六年,具备全球第二级别的生态规模). 相对于 Spring,有什么特点 ...

  5. 用 docker 部署 folkmq 消息中间件

    docker run -p 18602:18602 -p 8602:8602 noearorg/folkmq-server:1.0.19

  6. App备案与iOS云管理式证书 ,公钥及证书SHA-1指纹的获取方法

    iOS 备案查看信息 iOS平台Bundle ID 公钥 证书SHA-1指纹 IOS平台服务器域名 获取 Bundle ID: 或者 https://developer.apple.com/accou ...

  7. deepin15.11系统使用罗技k380键盘

    罗技k380键盘官方支持安卓.windows.macos,就是没有支持Linux系统.在开发过程中使用的是Deepin15.11系统,如何连接罗技k380就是一个问题,折腾了一段时间后解决这个问题.记 ...

  8. 股票数据爬虫进阶:免费、开源的股票爬虫Python库,实测真香

    更多精彩内容,欢迎关注公众号:数量技术宅,也可添加技术宅个人微信号:sljsz01,与我交流. 免费.开源的股票爬虫Python库:Easyquotation 我们在此前的文章中,向大家分享了如何用P ...

  9. Python 网络舆情分析系统,舆论可视化界面

    1 简介 舆情管理系统,这不仅仅可以帮助当地的管理人员迅速的排查跟本地有关的负面言论,还可以避免网民因为本身意识不到位而评论或发布一些不好的观点的情况,最终的目的就是帮助社会更好的发展. 2 技术栈 ...

  10. Java 时间戳和时间相互转换 日期时间和字符串相互转换 日期时间相减差值 日期时间增加指定天数

    Java 时间戳和时间相互转换 日期时间和字符串相互转换 日期时间相减差值 日期时间增加指定天数 代码: package com.sux.demo; import java.text.ParseExc ...