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中的调用
这段时间开始学习写存储过程,主要原因还是因为工作需要吧,本来以为很简单的,但几经挫折,豪气消磨殆尽,但总算搞通了,为了避免后来者少走弯路,特记述与此,同时亦对自己进行鼓励. 以下是我在开发项目中第一次 ...
随机推荐
- Git使用经验总结1
目录 1. 概述 2. 界面化工具 3. 远端覆盖本地 4. 设置代理 1. 概述 就不去介绍一些Git最常规的命令了,这些命令一般的教程都有,这里更多的总结自己的一些使用经验.当然作为初学者,常规的 ...
- 这场世界级的攻坚考验,华为云GaussDB稳过
摘要:实践证明,华为云GaussDB完全经受住了这场世界级的攻坚考验,也完全具备支撑大型一体机系统迁移上云的能力,并积累了丰富的经验. 本文分享自华为云社区<这场世界级的攻坚考验,华为云Gaus ...
- Vue组件间的传值五大场景,你造吗?
摘要:组件是 vue.js最强大的功能之一,这五个组件间传值场景你了解吗? 本文分享自华为云社区<你了解Vue组件间传值五大场景吗?>,作者:北极光之夜. . 父组件向子组件传值: 比如有 ...
- storybook添加全局样式与sass全局变量设置
storybook组件需要全局样式,只需在.storybook/preview.js 增加全局样式即可. import '../src/style/index.scss'; export const ...
- 字节跳动基于 Apache Hudi 的多流拼接实践方案
字节跳动数据湖团队在实时数仓构建宽表的业务场景中,探索实践出的一种基于 Hudi Payload 的合并机制提出的全新解决方案. 字节跳动数据湖团队在实时数仓构建宽表的业务场景中,探索实践出的一种基于 ...
- Python中字符前添加r,b,u,f前缀的含义
1.在python字符串前添加r,意思为消除转义字符 2.在python字符串前添加f,意思为支持大括号内的python 表达式. 3.在python字符串前添加b,意思为字符串类型为byte类型,在 ...
- 【辅助工具】Apifox
注意事项 需要刷新权限 请求方式需要对应
- 2021 VDC :vivo 互联网服务亿级用户的技术架构演进之路
关注公众号[vivo互联网技术]--回复[2021VDC]获取大会PPT. 2021年12月16日,vivo 开发者大会圆满落幕.在互联网技术专场中,来自vivo 互联网技术的6位研发专家,从基础架构 ...
- 定向减免!函数计算让 ETL 数据加工更简单
业内较为常见的高频短时 ETL 数据加工场景,即频率高时延短,一般费用大头均在函数调用次数上,推荐方案一般为攒批处理,高额的计算成本往往令用户感到头疼,函数计算推出定向减免方案,让 ETL数据加工更简 ...
- mybatis-plus-QueryWrapper like的用法
mybatis-plus 中想写like的语句 一.直接用 QueryWrapper 中的 like String deptLevelCodeTemp = "1000010001" ...