• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

Oracle基础教程知识点总结

mysql 搞代码 4年前 (2022-01-09) 22次浏览 已收录 0个评论

1. dba,sysdba,sysoper 区别 dba 是一种角色;角色可以包含系统权限,对象权限和角色;dba不包含sysdba,sysoper权限; sysdba ,

1. dba,sysdba,sysoper 区别

dba 是一种角色;角色可以包含系统权限,对象权限和角色;dba不包含sysdba,sysoper权限;

sysdba ,sysoper 是两种系统权限;这两种权限比较大最好以sys,system登陆管理,不要赋给普通用户;

2. Oracle的public

public 可以理解为所有用户的集合;

grant dba to public ; 相当于所有用户都是dba;

—plsql编程:

plsq

本文来源gao!daima.com搞$代!码#网#

l可以编写:过程,函数,触发器;

过程,函数,触发器在oracle中;

plsql是非常强大的数据库过程语言;

过程,函数可以在java中调用;

plsql优点:

提高性能;(传统的jdbc连库,执行sql,编译成数据库语言,返回值,关闭连接,多次调用多次编译,写成过程只编译一次,对调随用;)

模块化设计思想;(分页过程,订单的过程,转账的过程)

减少网络传输量;(本来需要传个大sql,现在传个过程名字就行了)

安全性高;(oracle数据库的保护,字段什么的都在库里面)

plsql缺点:

移植性不好;(oracle语言写的过程,这些过程在DB2上是没法使用的)

1.创建一个存储过程

create or replace procedure p1 is

begin

insert into mytable values(‘gao’,’123456′);

end;

/

2.存储过程编程报错,查看错误:

show errors;

3.如何执行存储过程

exec p1;

——编写规范

1.单行注释: —

多行注释:/*…*/ (java中一样)

2.标示符号的命名规范:

变量:v_ (v_val)

常量:c- (c_val)

游标:-cursor (emp_cursor)

例外:e_ (e_error)

3.块结构示意图

pl/sql 块有三部分组成:定义部分,执行部分,例外部分

declear /* 定义部分-定义常量,变量,例外,复杂数据类型*/

begin /* 执行部分-要执行的pl/sql语句和sql语句*/ 必须有

exception /*例外处理部分-处理运行的各种错误*/可选

public static void main(Sting args){

int a; //定义部分

try{

a++; //执行部分

}catch(Exception e){ //异常处理部分

}

}

–只包含执行快部分的块

set serveroutput on –打开输出服务;

begin

dbms_output.put_line(‘hello,World!’);

end;

/

–包含声明和执行部分的pl/sql块;

declare

v_passwd varchar2(10);

v_name varchar2(20);

begin

select passwd ,name into v_passwd ,v_name from mytable where name=&name; –地址符表示从控制台接受变量;

dbms_output.put_line(v_name||’的密码为:’||v_passwd);

end;

/

–包含声明,执行和 异常部分的pl/sql块

declare

v_passwd varchar2(10);

v_name varchar2(20);

begin

select passwd ,name into v_passwd ,v_name from mytable where name=&name; –地址符表示从控制台接受变量;

dbms_output.put_line(v_name||’的密码为:’||v_passwd);

exception

when no_data_found then

dbms_output.put_line(‘输入的用户名不存在!’);

end;

—-过程

过程用于执行特定的操作;可以有输入参数和输出参数,

–eg4:

create procedure changepasswd(name1 varchar2,passwd1 varchar2) is

begin

–根据用户名修改密码

update mytable set passwd=passwd1 where name=name1;

end;

— plsql中执行

call changepasswd(‘wucaiming’,’123′);

–在java中调用存储工程

//加载驱动

Class.forName(“oracle.jdbc.driver.OracleDriver”);

//得到连接

Connection c=DriverManager.getConnection(“jdbc:oracle:thin:@192.168.100.145:1521:SDZC”,”omgap”,”omgap”);

//创建CallableStatement

CallableStatement cs=c.prepareCall(“{call changepasswd(?,?)}”);

//给?赋值

cs.setString(1,”wucaiming”);

cs.setString(2,”123″);

//执行

cs.execute();

/* 如何使用过程返回值?*/

函数用于返回特定的数据。

–eg5:

create or replace function f_returnpasswd(name1 varchar2) return varchar2 is

pwd varchar2(30);

begin

select passwd into pwd from mytable where name=name1;

return pwd;

end;

–plsql中的调用

var a varchar2(30);

call f_returnPasswd(‘wucaiming’) into:a;

包用于在逻辑上组合过程和函数,它有包规范和包体两部分组成。

–创建包

create package p_package is

procedure changepasswd(name1 varchar2,passwd1 varchar2);

function f_returnpasswd(name1 varchar2) return varchar2;

end;

–实现包体

create or replace package body p_package is

procedure changepasswd(name1 varchar2,passwd1 varchar2) is

begin

–根据用户名修改密码

update mytable set passwd=passwd1 where name=name1;

end;


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Oracle基础教程知识点总结

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址