Oracle存储过程的基本学习
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存储过程的基本学习的更多相关文章
- Oracle存储过程学习使用
存储过程创建语法: create or replace procedure 存储过程名(param1 in type,param2 out type) as 变量1 类型(值范围); 变量2 类型(值 ...
- ORACLE存储过程学习
存储过程 1 CREATE OR REPLACE PROCEDURE 存储过程名 2 IS 3 BEGIN 4 NULL; 5 END; 行1: CREATE OR REPLACE PROCEDURE ...
- Oracle 存储过程学习
转自:http://blog.chinaunix.net/uid-20495387-id-174394.html http://www.cnblogs.com/rootq/articles/11000 ...
- Oracle存储过程学习备忘
之前的项目使用存储过程很少,但在实际的项目中,存储过程的使用是必不可少的. 存储过程是一组为了完成特定功能的SQL 语句 集,经编译后存储在数据库中:存储过程创建后,一次编译在程序中可以多次调用,对安 ...
- Oracle 存储过程学习笔记
1.存储过程简单实例 CREATE OR REPLACE PROCEDURE 存储过程名称 (参数in,参数out) AS -- 变量声明,每个声明用分号结束.可以在声明的同时初始化 name ); ...
- 用java调用oracle存储过程总结(转)
//1.call+包名+存储过程名(传入.传出值用?) String str="{call SMSBUSINESS.deleteZhZMember(?,?,?)}"; //2.建立 ...
- oracle 存储过程 动态sql语句
一.在oracle项目开发中越到问题: 在利用ODP向oracle中插入数据时,如果这样写: insert into clobTable (id, story) values(1,'....'); ...
- 用java调用oracle存储过程总结
以前一直没有动存储过程是用来干嘛的,后来请教朋友才换为自己的理解方式,用自己通俗的语言来说,就是把sql语句换为一个过程,也可以说是一个方法,每次直接给参数调用就好,使用存储过程查询速度快,系统只编译 ...
- oracle 存储过程(分析理解)
我的理解 比较简单(仅供参考) 存储过程就相当于java里面的方法 简单讲就是一串代码能够实现某个特定的功能,想要使用这个方法直接调用方法名就能够使用他的功能,这就是方法 oracle 存储过程也 ...
- oracle存储过程(返回列表的存储结合游标使用)总结 以及在java中的调用
这段时间开始学习写存储过程,主要原因还是因为工作需要吧,本来以为很简单的,但几经挫折,豪气消磨殆尽,但总算搞通了,为了避免后来者少走弯路,特记述与此,同时亦对自己进行鼓励. 以下是我在开发项目中第一次 ...
随机推荐
- Blog Statistics Dec 1, 2021 - Dec 1, 2022
1. Overview Data Date: Dec 1, 2021 - Dec 1, 2022 Number of articles: 51 All Platform Total Visits: 3 ...
- 详解CCE服务:一站式告警配置和云原生日志视图
本文分享自华为云社区<新一代云原生可观测平台之CCE服务日志和告警篇>,作者:云容器大未来. 告警和日志是运维人员快速定位问题.恢复异常的主要手段.运维人员日常的工作模式往往是先接收告警信 ...
- 加快脑动脉瘤检测,AI来了
摘要:华为云EI创新孵化Lab联合华中科技大学电信学院.华中科技大学同济医学院附属协和医院放射科在放射学领域的国际顶级期刊Radiology(<放射学>)上共同发表了最新研究成果. 日前, ...
- 使用LiteOS Studio图形化查看LiteOS在STM32上运行的奥秘
摘要:本文带来基于LiteOS一站式开发工具LiteOS Studio,通过单步调试,来动态分析LiteOS的启动流程. 编者按:在LiteOS大揭秘系列,我们和读者们分享了<LiteOS是怎么 ...
- 垃圾回收你懂,Java垃圾回收你懂吗?
摘要:在用 C 之类的编程语言时,程序员需要自己手动分配和释放内存.而 Java 不一样,它有垃圾回收器,释放内存由回收器负责.本文接下来将介绍Java垃圾收集的知识原理. java内存区域 Q: J ...
- 云图说|ASM灰度发布,让服务发布变得更敏捷、更安全
阅识风云是华为云信息大咖,擅长将复杂信息多元化呈现,其出品的一张图(云图说).深入浅出的博文(云小课)或短视频(云视厅)总有一款能让您快速上手华为云.更多精彩内容请单击此处. 摘要:通常产品优化迭代的 ...
- 5步带你掌握工作流Activiti框架的使用
摘要:本文通过一个工作流Activiti框架的具体使用示例,具体详尽的介绍了工作流Activiti框架的使用方式. 本文分享自华为云社区<一个使用示例,五个操作步骤!从此轻松掌握项目中工作流的开 ...
- 如何安装和使用 Hugging Face Unity API
Hugging Face Unity API 提供了一个简单易用的接口,允许开发者在自己的 Unity 项目中方便地访问和使用 Hugging Face AI 模型,已集成到 Hugging Face ...
- PySpark 报错 java.lang.ClassNotFoundException: com.mysql.cj.jdbc.Driver
解决方案: mv mysql-connector-java-8.0.20.jar $SPARK_HOME/jars/ 驱动文件mysql-connector-java-8.0.20.jar是从mave ...
- AtCoder Beginner Contest 242(C~E)
AB 水题 C - 1111gal password 题意:给出 N(\(2\le N\le 1e6\))求满足以下条件的 \(X\) 的数量,需除以模 (\(998244353\)) $X $ 是 ...