oracle命令总结笔记(总结完成版)

上传人:gbs****77 文档编号:9289995 上传时间:2020-04-04 格式:DOC 页数:59 大小:6.45MB
返回 下载 相关 举报
oracle命令总结笔记(总结完成版)_第1页
第1页 / 共59页
oracle命令总结笔记(总结完成版)_第2页
第2页 / 共59页
oracle命令总结笔记(总结完成版)_第3页
第3页 / 共59页
点击查看更多>>
资源描述
Oracle 10g 个人笔记 1 一 oracle 常用 sql plus 命令 1 conn ect 用户名 密码 网络 as sysdba sysoper 2 一般情况下使用普通用户登录 除非需要更高权限时 在切换高级用户 3 disc onnect 断开连接 又不退出当前窗口 4 quit exit 完全退出 5 show user 显示当前用户 6 管理员修改用户密码 alter user xxxx identified by yyyy 7 Passw ord pass 用户名 给自己修改密码 不需要带用户名 给别的用户修改 需要带用户名 创建临时表空间 create temporary tablespaceuser temp tempfile d user temp dbf size 50m autoextend on next 50m maxsize 1024m extent management local 创建表空间 createtablespaceuser ts datafile d user ts dbf size 50m autoextend on next 50m maxsize 1024m extent management local 创建用户 create user test38 identified by test38 default tablespaceuser ts temporary tablespaceuser temp quota 5m on user ts 给用户赋予权力 grantdba to test38 给 scott 用户解锁 alter user scott account unlock 用 system 用户给 scott 修改密码 Alter user scott identified by tiger Oracle 10g 个人笔记 2 不常用的命令 linesize 一行能显示多少个字符就换行了默认就只有 80 字符 所以会出现一个记录一行没 有显示完全就换行了 Set linesize 120 pagesize 显示多少个记录就从新开始 如图 前后差别 Set pagesize 100 Oracle 10g 个人笔记 3 二 oracle 用户管理 1 创建用户 必须是具有 DBA 权限的才行 create user 名字 identified by 密码 密码不能以数字开始 defaulttablespacexxxx temporary tablespacexxx2 quotaxmon xxxx 如果出现这样的情况 直接百度或者 google 一下 2 给用户分配权限 grant create session to 用户名 3 管理的用户的机制 Oracle 10g 个人笔记 4 4 综合案例 方案 schema 当创建一个用户的时候 只要这个用户创建了任何的数据对 象 如表 索引 触发器等 那么 DBMS 就会创建一个与该用户名一样的一个 方案 赋权 grant select update insert all on emp to 用户名 ps 如果想看一个用户有哪些数据对象 可以通过 pl sql development 查看 例子 小红查询 scott 的 emp 表 select from scott emp 表空间 参考 Oracle 表空间之基本概念 ORACLE 数据库被划分成称作为表空间的逻辑区域 形成 ORACLE 数据库的 逻辑结构 一个 ORACLE 数据库能够 有一个或多个表空间 而一个表空间则对应着一个或多个物理的 数据库文件 表空间是 ORACLE 数据库恢复的最小单位 容 纳着许多数据库实体 如表 视图 索引 聚簇 回退段和临时段等 每个 ORACLE 数据库均有 SYSTEM 表空间 这是数据库创建时自动创建的 SYSTEM 表空间必须总要保持联机 因为其包含着数据库运行所要求的基本信息 关于整个数据库的数据字典 联机求助机制 所有回退段 临时段和自举 段 所有的用户数据库实体 其它 ORACLE 软件产品要求的表 Oracle 10g 个人笔记 5 一个小型应用的 ORACLE 数据库通常仅包括 SYSTEM 表空间 然而一个稍大型应用的 ORACLE 数据库采用多个 表空间会对数据库的使用带来更大的方便 一个用户可以使用一个或多个表空间 一个表空间也可以供多个用户使用 用 户和表空间没有隶属关系 个人阶段总结 数据库实例 表空间 逻辑结构 用户 方案 数据对象 表 过程 包等 的关系 一个实例下可以有多个表空间 默认是有一个 system 表空间 一个用户可以使用一个 或多个表空间 一个表空间也可以供多个用户使用 用户和表空间没有隶属关系 数据库 建立一个用户 就建立了有且只有一个与该用户名字一样的方案来管理该用户建立的各种 数据对象 如有两个表空间 一个是默认的 system 表空间 一个是新建的 user tasp 表空 间 用户 wang 在 system 建立一个表 t1 在 user tasp 建立一个表 t2 但是只有一个 方案 wang 来管理这两个表 虽然表分布在不同的表空间上 也说明方案和表空间没有隶 属关系 就像用户和表空间没有隶属关系一样 数据对象的操作一般是通过方案来实现操 作的 如 Select from scott emp 这是完整的写法 scott 是方案名 个人实验 建立临时表空间 create temporary tablespace user temp tempfile f data user temp dbf size 50m autoextend on next 10m maxsize 100m extent management local 建立表空间 create tablespace user tasp datafile f data user tasp dbf size 50m autoextend on next 10m maxsize 100m extent management local 创建用户 create user wang identified by wang default tablespace system grant connect resource to wang alter user wang quota 10m on user tasp 在表空间上给用户分配空间就能让用 户在该表空间建立数据对象 注意不要指定分配空间在临时表空间上 不然会报错 在默认表空间上建表 create table t test1 id number name varchar2 20 tablespace system 在 user tasp 建表 Oracle 10g 个人笔记 6 create table t test2 id number name varchar2 20 tablespace user tasp Schema 方案 当一个用户被创建之后 只要它创建任何一个数据对象 那 DBMS 就会创建一个和它名字 一样的方案与该用户对应 Ps 如果想看某个用户有什么数据对象 用 pl sql development 软件 Schema 的实际应用 xioanghong 访问 scott 的 emp 表 1 连接 scott conn soctt tiger 2 给 xiaohong 赋权限 grant select update delete all on emp to xiaohong 3 select from scott emp 参考 1 with admin option 用于系统权限授权 with grant option 用于对象授权 2 给一个用户授予系统权限带上 with admin option 时 此用户可把此系统权限授予其他用户或角色 但收回这个 用户的系统权限时 这个用户已经授予其他用户或角色的此系统权限不会因传播无效 如授予 A 系统权限 create session with admin option 然后 A 又把 create session 权限授予 B 但管理员收回 A 的 create session 权限时 B 依 然拥有 create session 的权限 但管理员可以显式收回 B create session 的权限 即直接 revoke create session from B 而 with grant option 用于对象授权时 被授予的用户也可把此对象权限授予其他用户或角色 不同的是但管理员收回 用 with grant option 授权的用户对象权限时 权限会因传播而失效 如 grant select on 表名 to A with grant option A 用户把此权限授予 B 但管理员收回 A 的权限时 B 的权限也会失效 但管理员不可以直接收回 B 的 SELECT ON TABLE 权限 相同点 Oracle 10g 个人笔记 7 两个都可以既可以赋予 user 权限时使用 也可以在赋予 role 时用 不同点 with admin option 只能在赋予 system privilege 的时使用 with grant option 只能在赋予 object privilege 的时使用 撤消带有 with admin option 的 system privileges 时 连带的权限将保留 撤消带有 with grant option 的 object privileges 时 连带的权限将不被保留 用户口令管理 使用 profile 进行用户口令管理 一个用户连续 3 次密码输入错误 那该账户锁定 1 创建 profile 文件 create profile 文件名 limitfailed login attempts 次数 password lock time 天数 2 把该文件 规则 分配给某个用户 alter user 用户名 profileprofile 文件名 3 终止口令 一个账号的密码最多能用几天的问题 Pl 一个密码的使用时间为 10 天 宽限时间是 2 天 create profile 文件名 limit password life time 10 password grace time 2 4 删除 profile drop profile 文件名 Oracle 10g 个人笔记 8 windows 下 lsnrctl start oradim startup sidorcl unix linux 环境下 略 Oracle 的登陆认证 Oracle 10g 个人笔记 9 Compmgmt msc 进入计算机管理 找回管理员的密码 1 搜索 PWD 数据库实例名 ora 2 删除该文件 最好备份一份 3 生成新的密码文件 在 dos 下输入命令 orapwd file PWD 数据库实例名 ora 的具体路径 password 新密码 entries 允许多少个人进入 Ps orapwd file D oracle product 10 2 0 db 1 database PWDorcl ora password welcome entries10 file 文件路径 password 新密码 entries 登陆 sys 最多的用户 4 重新启动数据库实例 Oracle 数据类型 Char 存放字符串 最大 2000 字符 定长 Pl name char 32 只能存放 32 字符 多了 报错 少了 空格填满 Oracle 10g 个人笔记 10 ps dump 显示一个字段具体的情况 varchar2 变长字符 最大可存放 4000 字符 name varchar 16 name abc 实际上只占 3 字符 其余的 13 个就回收 第九课 nchar 定长 编码方式 unicode 最大 2000 字符 Ps char 类型的 一种中文字符站两个字符 而 nchar 类型 一个中文字符只占 一个字符 number 1 可以存放小数 也可以是小数 2 number p s p 为有效位 s 为小数位 范围 P 1 38 s 84 127 整数部分的个数为 p s PS 如果单单就是 number 后面没有任何数字 该数是多少就是多少 Pl 123 456 number 结果就是 123 456 Oracle 10g 个人笔记 11 原则 实际开发过程 如果 number 指定了小数位 那明确指定 如果没有指 定 就直接用 number date 日期类型 默认的是 dd mm yyyy 第十课 Ps 数据类型是 number 插入的是字符串型的 12345 oracle 会自动把这样 的字符类型转化为数字类型 但是如果是 asd123 就不行了 2 插入空置的情况 插入 null 和 情况是一样的 中间有一个空格 并不是 空 即 null 3 字符和日期类型应该用 包含起来 第十一课 Oracle 10g 个人笔记 12 Ps oracle 的 sql 不区分大小写 但是内容区分大小写 Oracle 10g 个人笔记 13 Ps 给字段改名可以用 as 也可以不用 nvl 处理 null 的字段 select ename sal 12 nvl comm 0 as all sal from emp oracle 中的字符连接符号 Oracle 10g 个人笔记 14 设置保存点并回滚 savepoint aa rollback to aa 第十二课 where 语句的用法 like 操作符 任意零个或者多个字符 任意一个字符 Oracle 10g 个人笔记 15 条件为空与否的使用 is null 或者 is not null 处理 Order by 排序 默认是 asc desc 是降序 第十三课 组函数 max min sum count avg ps 括号里面可以是字段也可以是表达式 avg sal 不会吧 sal 为空的记录统计进来 它只计算有值记录的平均 值 求所有人的平均值 可以这样 select sum sal count from emp group by 查询的结果进行分组 having 限制分组显示结果 第十四课 多表查询 1 emp salgrade 两张表的连接 Oracle 10g 个人笔记 16 select ename sal grade from emp join salgrade on sal between losal and hisal 自连接 2 显示 FORD 的上级 select ename sal from emp where empno select mgr from emp where ename FORD 3 显示所有员工的名字 及其上级的名字 select t1 ename as worker t2 ename as boss from emp t1 left join emp t2 on t1 mgr t2 empno 第十五课 子查询 显示与 SMITH 同一个部分的员工 select ename from emp where deptno select deptno from emp where ename SMITH 结果包含了 SMITH 如果不想包含 SMITH 在加上 and ename SMITH 子查询中使用 all Pl 显示工资比部分 30 的所有员工的工资还要高的员工姓名 工资 部门号 select ename sal deptno from emp where sal all select sal from emp where deptno 30 同样的写法 Oracle 10g 个人笔记 17 select ename sal deptno from emp where sal select max sal from emp where deptno 30 子查询中使用 any Pl 第十六课 在 from 中使用子查询 显示各部分中高于本部分平均工资的员工信息 select emp ename sal t myavg t deptno from emp join select avg sal myavg deptno from emp group by deptno t on emp deptno t deptno where sal t myavg 各个部门工资最高人的详细信息 select emp t maxsal from emp join select max sal maxsal deptno from emp group by deptno t Oracle 10g 个人笔记 18 on emp deptno t deptno where emp sal t maxsal 显示每个部门的信息和人员数 1 显示各个部分的人数 select count pernum deptno from emp group by deptno 2 与表 dept 进行连接 select dept t pernum from dept left join select count pernum deptno from emp group by deptno t on dept deptno t deptno 1 表本身的复制 create table mytest as select from emp ps 把 emp 表的结构和记录都复制到这个 mytest 表中 2 自我复制进行插入操作 insert into mytest select from mytest Oracle 分页 select ename sal from select ename sal rownum r from select from emp order by sal desc where r 5 and r sysdate 最经三个月入职的员工 同样可以应用 bbs 最近 n 个月的帖子 系统函数 Oracle 10g 个人笔记 25 第二十三 二十四课 事务 Jdbc 中设置 oracle 隔离机制 conn setTranscationIsolation Connect SERIALIZIABLE 方法 Oracle 10g 个人笔记 26 第二十五 二十六课 数据完整性 1 约束 not null uinque primary key froeign key check default Pl create table worker id number primary key name varchar2 20 not null salnumber check sal 3000 and sal alter table 表名 drop constraint 约束名 建立约束的两种方法 1 每个字段后直接填写约束条件如 id primary key 字段级别约束 2 字段都建立好了 在表后添加 表级约束 Oracle 10g 个人笔记 27 constraint 约束名 primary key id constraint 约束名 foreign key id references 表 字段 constraint 约束名 unique id not null 字段 constraint 约束名 primary key id 第二十七课 序列 create sequence seq start with 1 increment by 1 minvalue 1 maxvalue 3000 cycle cycle 指增长到 3000 在重新从 1 开始增长 序列的使用 seq next val 序列名 currval 显示当前序列的值 这个使用之前必须先使用上面那个 第二十八课 索引 Oracle 10g 个人笔记 28 1 经常用于查询 排序和分组的列 即经常在 where order 或 group by 子 句中出现的列 2 大型的表 上百万级的数据表 使用索引 3 逻辑层次不要超过 4 层 索引会降低修改 删除和插入的效率 第二十九 三十课 权限和角色 一 系统权限 常用的有 系统权限的回收不是级联回收 对象权限 Oracle 10g 个人笔记 29 常用的 对象权限的回收是级联回收的 Ps 如 scott 把权限给 user1 user1 又把该权限给 user2 如果 scott 把 user1 的权 限收回 那 user2 也被收回 角色的管理 角色是一组权限的集合 是为了简化对权限的管理 grantee 中的名字必须是大写 不管系统默认还是你自己创建的 自己创建的 可能是小写的也得大写 自定义角色 Pl grant 角色 to 用户 with admin option 加上后面一句话 就是该 用户能把该 角色继续给别人 Oracle 10g 个人笔记 30 第三十一课 Pl sql pl create procedure pro1is begin insert into emp values end 执行 exec pro1 带有参数的 procedure 块 block 开发 Oracle 10g 个人笔记 31 要想显示输出的内容需要 set serveroutput on PL declare 定义变量 v ename varchar2 20 begin select ename into v ename from emp where ename dbms output put line ename is v ename end 改成 procedure create procedure pro is 定义变量 v ename varchar2 20 begin select ename into v ename from emp where ename dbms output put line ename is v ename end 带参数的 create procedure pro v empno number is v ename varchar2 10 begin select ename into v ename from emp where empno v empno dbms output put line v ename is v ename end Oracle 10g 个人笔记 32 第三十二课 Pl sql 异常的处理 declare v ename varchar2 10 begin select ename into v ename from emp where empno dbms output put line ename is v ename exception 异常的声明 when no data found then dbms output put line 输入的号码有误 end exception when 异常名称 on 对异常处理的代码 如 dbms output put line 输入的号码有误 过程语法总结 create procedure 名字 变量 in out 类型 变量 in out 类型 is 变量声明 begin 代码 exception when then end ps 创建过程的变量类型 不要指定类型的具体大小 只需是 Oracle 10g 个人笔记 33 varchar number 即可 第三十三课 Pl create procedure pro3 in name varchar in sal varchar is begin update emp set sal in sal where ename in name end 控制台调用 procedure exec 名字 or call 名字 Java 中调用过程 过程 Create or replace procedure pro3 is begin insert into emp empno ename values 1234 WANG end java 调用代码 package com my first import java sql CallableStatement import java sql Connection import java sql DriverManager import java sql SQLException publicclass TestPro param args publicstaticvoid main String args Connection conn null CallableStatement cs null try Class forName oracle jdbc driver OracleDriver conn Oracle 10g 个人笔记 34 DriverManager getConnection jdbc oracle thin 127 0 0 1 1521 oracle scott tiger cs conn prepareCall call pro3 call pro3 cs execute catch ClassNotFoundException e e printStackTrace catch SQLException e e printStackTrace finally if cs null try cs close cs null catch SQLException e e printStackTrace if conn null try conn close conn null catch SQLException e TODO Auto generated catch block e printStackTrace 第三十四课 函数 create function 名字 参数类型 return 数据类型 is 定义变量 begin Oracle 10g 个人笔记 35 执行代码 end pl create or replace function fun1 in ename varchar retur number is v annualsal number begin select sal nvl comm 0 12 into v annualsal from emp where ename in ename return v annualsal end 控制台调用 function 1 select fun1 SMITH from dual 2 var v sal number call ful SMITH into v sal Java 中调用 function package com my first import java sql CallableStatement import java sql Connection import java sql DriverManager import java sql PreparedStatement import java sql ResultSet import java sql SQLException importjava sql Statement publicclass TestFunction param args publicstaticvoid main String args Connection conn null CallableStatement cs null ResultSet rs null PreparedStatement ps null try Class forName oracle jdbc driver OracleDriver Oracle 10g 个人笔记 36 conn DriverManager getConnection jdbc oracle thin 127 0 0 1 1521 orcl scott tiger String sql select fun from dual ps conn prepareStatement sql ps setString 1 SMITH rs ps executeQuery String sql select fun SMITH from dual 这样也 行 rs conn createStatement executeQuery sql while rs next System out println SMITH SAL IS rs getDouble 1 catch ClassNotFoundException e e printStackTrace catch SQLException e e printStackTrace finally if cs null try cs close cs null catch SQLException e e printStackTrace if conn null try conn close conn null catch SQLException e TODO Auto generated catch block e printStackTrace 第三十五课 包 Oracle 10g 个人笔记 37 ps Procedure 和 function 必须有变量 包体 Pl sql 语法 数据类型分为 1 标量类型 Oracle 10g 个人笔记 38 用 赋初值 Oracle 中 相当于 java 中的 oracle 相当于 java Pl 计算员工的税 create or replace procedure pro3 v empno number is 定义变量 v tax rat number 3 2 0 03 v sal number v ename varchar2 32 v tax number begin select ename sal into v ename v sal from emp where empno v empno v tax v sal v tax rat dbms output put line v ename 该交的税是 v tax end 第三十六课 type v empno emp empno type 即 v empno 的类型参照 emp empno Createorreplaceprocedurepro3 v empno number is 定义变量 v tax ratnumber 3 2 0 03 v sal emp sal type v ename emp ename type v taxnumber begin select ename sal into v ename v sal from emp where empno v empno Oracle 10g 个人笔记 39 v tax v sal v tax rat dbms output put line v ename 该交的税是 v tax end 2 复合类型 Pl Oracle 10g 个人笔记 40 3 参照变量类型 游标变量 cursor Cursor 类型包含三种 隐式 Cursor 显式 Cursor 和 Ref Cursor 动态 Cursor 1 隐式 Cursor 1 对于 Select INTO 语句 一次只能从数据库中获取到一条数据 对于这种类型的 DML Sql 语句 就是隐式 Cursor 例如 Select Update Insert Delete 操作 2 作用 可以通过隐式 Cusor 的属性来了解操作的状态和结果 从而达到流程的控制 Cursor 的属性包含 SQL ROWCOUNT 整型代表 DML 语句成功执行的数据行数 SQL FOUND 布尔型值为 TRUE 代表插入 删除 更新或单行查询操作成功 SQL NOTFOUND 布尔型与 SQL FOUND 属性返回值相反 SQL ISOPEN 布尔型 DML 执行过程中为真 结束后为假 3 隐式 Cursor 是系统自动打开和关闭 Cursor Pl Set Serveroutput on begin update t contract master set liability state 1 where policy code 123456789 if SQL Found then dbms output put line the Policy is updated successfully commit else dbms output put line the policy is updated failed end if end 2 显式 Cursor 1 对于从数据库中提取多行数据 就需要使用显式 Cursor 显式 Cursor 的属性包含 游标的属性返回值类型意义 ROWCOUNT 整型获得 FETCH 语句返回的数据行数 FOUND 布尔型最近的 FETCH 语句返回一行数据则为真 否则为假 NOTFOUND 布尔型与 FOUND 属性返回值相反 ISOPEN 布尔型游标已经打开时值为真 否则为假 Oracle 10g 个人笔记 41 2 对于显式游标的运用分为四个步骤 定义游标 Cursor Cursor Name IS 打开游标 Open Cursor Name 操作数据 Fetch Cursor name 关闭游标 Close Cursor Name 这个 Step 绝对不可以遗漏 3 以下是三种常见显式 Cursor 用法 Set serveroutput on declare define Cursor Cursor cur policy is select cm policy code cm applicant id cm period prem cm bank code cm bank account from t contract master cm where cm liability state 2 and cm policy type 1 and cm policy cate in 2 3 4 and rownum 5 order by cm policy code desc curPolicyInfo cur policy rowtype 定义游标变量 Begin open cur policy open cursor Loop deal with extraction data from DB Fetch cur policy into curPolicyInfo Exit when cur policy notfound Dbms Output put line curPolicyInfo policy code end loop Exception when others then close cur policy Dbms Output put line Sqlerrm if cur policy isopen then close cursor close cur policy end if end Set serveroutput on Oracle 10g 个人笔记 42 declare Cursor cur policy is select cm policy code cm applicant id cm period prem cm bank code cm bank account from t contract master cm where cm liability state 2 and cm policy type 1 and cm policy cate in 2 3 4 and rownum 5 order by cm policy code desc Begin For rec Policy in cur policy loop Dbms Output put line rec policy policy code end loop Exception when others then Dbms Output put line Sqlerrm end Set serveroutput on declare Cursor cur policy is select cm policy code cm applicant id cm period prem cm bank code cm bank account from t contract master cm where cm liability state 2 and cm policy type 1 and cm policy cate in 2 3 4 and rownum 5 order by cm policy code desc Begin For rec Policy in cur policy loop Dbms Output put line rec policy policy code end loop Exception when others then Dbms Output put line Sqlerrm end Oracle 10g 个人笔记 43 3 Ref Cursor 动态游标 1 与隐式 Cursor 显式 Cursor 的区别 Ref Cursor 是可以通过在运行期间传递参数来获取数 据结果集 而另外两种 Cursor 是静态的 在编译期间就决定数据结果集 2 Ref cursor 的使用 Type Cursor type name is ref cursor Define 动态的 Sql 语句 Open cursor 操作数据 Fetch Cursor name Close Cursor Set serveroutput on Declare define cursor type name type cur type is ref cursor cur policy cur type sqlStr varchar2 500 rec policy t contract master rowtype begin define 动态 Sql sqlStr select cm policy code cm applicant id cm period prem cm bank code cm bank account from t contract master cm where cm liability state 2 and cm policy type 1 and cm policy cate in 2 3 4 and rownum 5 order by cm policy code desc Open Cursor open cur policy for sqlStr loop fetch cur policy into rec policy policy code rec policy applicant id rec policy period prem rec policy bank code rec policy bank account exit when cur policy notfound Dbms Output put line Policy code rec policy policy code end loop close cur policy end Oracle 10g 个人笔记 44 第三十七课 函数和过程的区别 函数必须有返回值 过程没有 在 java 中调用方式不一样 过程是使用 callstatement 函数是 使用 select 函数 Pl sql 进阶 条件语句 if 条件 then 代码 endif if then else end if if then elseif then end if 循环语句 while 式的 do while for 式 while 条件 loop loop for 条件 loop end loop exit when 条件 end loop end loop Oracle 10g 个人笔记 45 pl1 for 式 begin for k in1 10 loop 只能有2个点 dbms output put line k end loop end while 式 declare vk number 1 begin while vk10 end loop end 第三十八课 Oracle 10g 个人笔记 46 第三十九 四十课 Java 调用带有入参和出参 procedure procedure create or replace procedure pro v empno invarchar2 v ename outvarchar2 is begin select ename into v ename from emp where empno v empno end java 代码 package com my first import java sql CallableStatement import java sql Connection import java sql DriverManager import java sql SQLException public class TestPro param args public static void main String args Connection conn null CallableStatement cs null try Class forName oracle jdbc driver OracleDriver conn DriverManager getConnection jdbc oracle thin 127 0 0 1 1521 orcl scott tiger cs conn prepareCall call pro cs setInt 1 7839 给第二个 注册 cs registerOutParameter 2 oracle jdbc OracleTypes VARCHAR Types VARCHAR cs execute String ename cs getString 2 System out println ename is ename catch ClassNotFoundException e e printStackTrace catch SQLException e e printStackTrace Oracle 10g 个人笔记 47 finally if cs null try cs close cs null catch SQLException e e printStackTrace if conn null try conn close conn null catch SQLException e TODO Auto generated catch block e printStackTrace Pl 输入部门编号返回该部门所有的员工信息 1 创建 package建包就是为了使用 cursor create or replace package mypackage is type my cursor is ref cursor end 2 创建 procedure create or replace procedure cursor pro v deptno in number v peoinfo out mypackage my cursor is begin open v peoinfo for select from emp where deptno v deptno 这里 cursor不能关闭 不然 java中不能使用 close my cursor Oracle 10g 个人笔记 48 end 3 java代码 package com my first import java sql CallableStatement import java sql Connection import java sql DriverManager import java sql ResultSet import java sql SQLException importjava sql Types publicclass DeptPeoInfo param args publicstaticvoid main String args Connection conn null CallableStatement cs null ResultSet rs null try Class forName oracle jdbc driver OracleDriver conn DriverManager getConnection jdbc oracle thin 127 0 0 1 1521 orcl scott tiger cs conn prepareCall call cursor pro cs setInt 1 10 cs registerOutParameter 2 oracle jdbc OracleTypes CURSOR cs execute rs ResultSet cs getObject 2 while rs next System out println rs getString ename rs getString sal catch ClassNotFoundException e e printStackTrace catch SQLException e e printStackTrace finally if cs null try cs close Oracle 10g 个人笔记 49 cs null catch SQLException e e printStackTrace if conn null try conn close conn null catch SQLException e TODO Auto generated catch block e printStackTrace 视图 Ps 如果对 view 进行 cud 操作 就是通过 view 对原表进行 cud 操 作 View 的作用是 可以把两张或者多张表连接在一起做成一个 view 这样就相当于从一个表中查询一样 Oracle 10g 个人笔记 50 第四十一 二课 触发器 触发器的分类 Dml 触发器 insert delete update select Ddl 触发器 create drop 系统触发器 pl 用户登录退出 启动 关闭数据库 Dml 触发器 PL create table my emp as select from emp 建表 建立trigger create or replace trigger trig1 after insert on scott my emp begin dbms output put line 添加了一条记录 Oracle 10g 个人笔记 51 end 插入数据 insert into my emp empno ename sal deptno values 1234 WANG 3000
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 解决方案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!