Oracle 编程

编程:储存过程,自定义函数,触发器,包。

储存过程

在命令窗口用exec调

作用:存储在数据库中用于完成某个功能的程序

创建在 procedure里

create or replace procedure 存储过程名称(参数1 in 数据类型, 参数2 out 数据类型, 参数3 in out 数据类型) is 定义变量 begin 代码 end 存储过程名称;

命令窗口输出:set serveroutput on 默认是off,关闭输出,只对当前窗口有效

dbms_output.put_line(‘输出内容‘);

  

变量定义:变量名 数据类型(长度);

变量赋值:变量名 数据类型(长度) := 值或表达式;

      变量名 := 值或表达式;

    

还能修改数据,修改必须提交数据库 。 commit 提交数据库。

   

自定义函数

作用:用户自定义的具有返回值的程序

必须有返回值,不能执行DML语句,只能执行DQL语句。查询的时候用,不允许对数据修改

创建 在functions里

    

select 字段或函数,... into 变量,... from 表     把查询的单行数据赋给变量

  

触发器

DML触发器,修改触发

DDL触发器,查询触发

复合触发器

系统事件触发器

触发方式:

instead of 触发器 ,常用于视图

before 前触发after 后触发

DML触发器:

对表的insert,update,delete动作触发

:old 动作执行前的行数据

:new 动作执行后的行数据

创建

创建完后,写编程

修改的记录就出现在了log表中

保存和管理存储过程和自定义函数

可以把储存过程和自定义函数放在里面

创建 在packages里

包的部分

(包头)公开包体内的程序名的定义,提供给外部进行访问。

包体,定义公共变量、存储过程、自定义函数,外部不能直接访问。

可以直接把操作过程和内置函数放在包体里,便于管理

在包头调用,在包体里是不开放的。

从包里调用时 使用包名.程序名

时间: 2024-10-26 09:40:42

Oracle 编程的相关文章

ORACLE编程的套路——字符串分解

作者按,字符串分解在ORACLE编程中可用于词.字的解析,继而可实现单词搜索的合并,为基础代码. 代码如下,作者保留所有权. create or replace function FUN_STRING_SPLIT ( v_string IN VARCHAR2, v_sep IN VARCHAR2) return fs.stringList IS /***************************************************************************

oracle编程艺术--runstst工具

runstats工具是< oracle database 9i/10g/11g编程艺术 深入数据库体系结构>作者写的一个统计性能工具,能对做同一件事的两个方法进行比较,得到孰优孰劣的结果. (看到runstats想到了db2 里有runstats命令收集统计信息) runststs工具主要测量三个要素 墙上时钟(wall clock) 或耗用时间(elapsed time) 系统统计结果,会并排地显示每个方法做某件事(如执行一个解析调用)的次数,并展示出二者之差 闩定(latch)这个是报告的

数据库编程4 Oracle Pro*C/C++开发

[本文谢绝转载原文来自http://990487026.blog.51cto.com] 1,上次难点复习 1 求所有部门的平均奖金 2 求各部门的平均薪水 3 求各部门每个工种的平均薪水 4 求各部门每个工种大于2000的平均薪水 5 求10号部门的平均工资(2种写法) 6 创建一个学生表 7 并向表中插入一条数据 8 列出不是管理层的员工: 9 工资最高前10名的员工信息(rownum是一个属性值) 10 找到各部门大于本部门平均薪水的员工: 11 创建索引 Linux 环境 Oracle  

Oracle使用occi编程

转:c++ Oracle OCCI 编程 (2012-07-04 11:11:58) 转载▼ 标签: it 分类: 技术 找不到具体的出处,只好不写了. OCCI数据库ORACLE编程步骤1. 配置环境(1) Occi访问数据库需要occi.h头文件,此文件在oracle安装目录下,必须有oracle库的支持.安装oracle服务端或客户端:(2) 配置NLS_LANG环境变量,必须与数据库的字符编码一致,否则可能出现中文乱码:(3) 配置环境变量,使客户端支持中文显示:(4) 安装C++编程工

c++ Oracle OCCI 编程

转载备忘:http://blog.sina.com.cn/s/blog_53a72add01015zj4.html OCCI数据库ORACLE编程步骤1. 配置环境(1) Occi访问数据库需要occi.h头文件,此文件在oracle安装目录下,必须有oracle库的支持.安装oracle服务端或客户端:(2) 配置NLS_LANG环境变量,必须与数据库的字符编码一致,否则可能出现中文乱码:(3) 配置环境变量,使客户端支持中文显示:(4) 安装C++编程工具和g++编译工具.2. 编写C++程

oracle 的服务器进程(PMON, SMON,CKPT,DBWn,LGWR,ARCn)

来着TOM的<oracle 编程艺术 9i,10g,11g> PMON PMON,进程监视.PMON主要有3个用途: 1,在进程非正常中断后,做清理工作.例如:dedicated server失败了或者因为一些原因被杀死,这是PMON的工作分两种.第一,是对dedicated server所做的工作进行恢复或撤销.第二:是释放dedicated server占用的资源.PMON会把失败进程的未提交的工作进行rollback,释放锁,释放SGA空间 2,在进程abort后,PMON进行清理工作.

OcciWrapper使用指南(高性能Oracle访问组件)

occiwrapper使用指南 occiwrapper是一个开源的.跨平台的Oracle访问组件, 方便C++开发者们灵活地操作oracle数据库.为了方便使用,组件中的接口形式参考的POCO库的使用方式.occiwrapper采用如下的形式执行SQL语句: 1 occiwrapper::Session s = SessionInstance( connection ); 2 s << "truncate table TBL_TEST ", now; 通过session对象

Oracle容易犯的错误和技巧集合

引言      此文记录日常开发中容易遇到的oracle编程误区和一些使用技巧,不定期更新. 1.sum(),max(),min(),avg()等函数会得到null值 declare n_num number(5):=''; begin select sum(1) into n_num from dual where 1=2 ; n_num:= n_num+2; dbms_output.put_line(n_num); end; 上面代码描述了我们日常开发的一个场景,将某个表的数据求和,然后再各

Oracle队列实现

Oracle队列实现 -- 核心技术点:for update 创建测试表 create table t ( id       number primary key, processed_flag varchar2(1), payload  varchar2(20) ); 创建函数索引 create index t_idx on t( decode( processed_flag, 'N', 'N' ) ); 插入几条测试数据 insert into t select r, case when m