- 浏览: 40435 次
- 性别:
- 来自: 北京
最新评论
第一:已经存在表PUB_T_DIVISION_TEST,可以使用以下的语句创建
create table PUB_T_DIVISION_TEST(
DIVID VARCHAR2(30) not null,
DIVNAME VARCHAR2(60) not null,
SUPERID VARCHAR2(30) not null,
DIVLVLID VARCHAR2(30) not null,
ENDFLAG VARCHAR2(30) not null,
ADDR VARCHAR2(30),
POSTALCODE VARCHAR2(30),
TEL VARCHAR2(30),
DIVTYPE VARCHAR2(30),
ISSELF VARCHAR2(30),
BREVIARY VARCHAR2(30),
DEFPASSWORD VARCHAR2(30),
SHOWID VARCHAR2(30),
DISTRICTID VARCHAR2(30),
ISXZQH VARCHAR2(30),
ADMINMANID VARCHAR2(30)
)
tablespace EFMWEB
pctfree 10
initrans 1
maxtrans 255
storage
(
initial 64K
minextents 1
maxextents unlimited
);
插入几条数据:
insert into PUB_T_DIVISION_TEST (DIVID, DIVNAME, SUPERID, DIVLVLID, ENDFLAG, ADDR, POSTALCODE, TEL, DIVTYPE, ISSELF, BREVIARY, DEFPASSWORD, SHOWID, DISTRICTID, ISXZQH, ADMINMANID)
values ('001', '门头沟政府, '#', '0001', '0', '', '', '', '01', '0', '', '', '001', '', '', '');
insert into PUB_T_DIVISION_TEST (DIVID, DIVNAME, SUPERID, DIVLVLID, ENDFLAG, ADDR, POSTALCODE, TEL, DIVTYPE, ISSELF, BREVIARY, DEFPASSWORD, SHOWID, DISTRICTID, ISXZQH, ADMINMANID)
values ('087', '街道预算', '001', '00010002', '0', '', '', '', '01', '0', '', '', '087', '', '0', ' ');
insert into PUB_T_DIVISION_TEST (DIVID, DIVNAME, SUPERID, DIVLVLID, ENDFLAG, ADDR, POSTALCODE, TEL, DIVTYPE, ISSELF, BREVIARY, DEFPASSWORD, SHOWID, DISTRICTID, ISXZQH, ADMINMANID)
values ('087001', '街道预算', '087', '000100020001', '1', '', '', '', '01', '0', '', '', '087001', '', '0', ' ');
insert into PUB_T_DIVISION_TEST (DIVID, DIVNAME, SUPERID, DIVLVLID, ENDFLAG, ADDR, POSTALCODE, TEL, DIVTYPE, ISSELF, BREVIARY, DEFPASSWORD, SHOWID, DISTRICTID, ISXZQH, ADMINMANID)
values ('088', '乡镇预算', '001', '00010003', '0', '', '', '', '04', '0', '', '', '088', '', '', '');
insert into PUB_T_DIVISION_TEST (DIVID, DIVNAME, SUPERID, DIVLVLID, ENDFLAG, ADDR, POSTALCODE, TEL, DIVTYPE, ISSELF, BREVIARY, DEFPASSWORD, SHOWID, DISTRICTID, ISXZQH, ADMINMANID)
values ('088001', '乡镇预算', '088', '000100030001', '1', '', '', '', '01', '0', '', '', '088001', '', '0', ' ');
第二:使用PL/SQL连接上oracle,连接过程如下
1) 安装过程略,
2)配置PL/SQL:
打开 Tools->Preferences
假设你的oracal安装路径是:E:\java\ora90
那末:
Oracle Home:E:\java\ora90
Oci Libray:E:\java\ora90\bin\oci.dll //这里主要是指出oci.dll的存放位置
点击“apply”"OK"。
以上的设置是建立在你已经安装了oracle的客户端程序,如果不想安装oracle的客户端也想使用PL/SQL
在本地连接 远程的oracle服务器,你需要一个绿色版的客户端,这个客户端很小,大概在10几M,解压缩到一定路径,根据实际路径设定
Oracle Home和Oci Libray的值,并仿照这个路径E:\java\ora90\network\admin\tnsnames.ora建立tnsnames.ora文件
3)更改配置文件
使用文本编辑器打开E:\java\ora90\network\admin\tnsnames.ora 文件,
DFCS =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.111)(PORT = 6666))
)
(CONNECT_DATA =
(SERVICE_NAME = dddd)
)
)
Host是你需要连接oracle服务器的地址,不一定是本地
Port是oracle服务器的端口,根据实际情况进行设定
Service_Name是服务器上的服务名称,根据实际情况设定
4)重新启动pl/sql,填写用户名和密码 还有SERVICE_NAME 就可以登陆了
不能登陆pl/sql有以下几种可能:
a)密码帐号错误
b)已经安装过oracle,卸载不完整,遗留了环境变量,在使用绿色版客户端时总是提示找不到服务ID,
可以手动更新原有的oracle环境变量恢复成安装以前,就可以了
第三:函数
可以看我转载的‘oracle函数大全’,或者你去搜
第四:触发器
1)File>new->Program WIndow->Trigger
Name:test_division_trigger //触发器的名称,触发器不能被直接调用,只能由数据库的操作间接调用
Fires: before //需要被触发的操作是在事件执行前(before)或者后(after)才被执行
Event: insert //触发时件是什么类型的,insert:当有插入操作时触发才被执行,update,delete
Table or View: pub_t_division_test//操作的表明称
StatementLevel: //不知道
2)
create or replace trigger test_division_trigger -- 创建触发器,如果已经存在同名的触发器,这个
--将覆盖原有的
after update or insert --确定事件在有更新或者插入操作时才被触发
of superid --触动触发条件的参数名称
on pub_t_division_test --表名,还没有研究多个表的情况
referencing old as old_value --定义新值 就值
new as new_value
for each row
when (new_value.superid<>'001' ) --触发条件:在更新或者插入的心智当中的superid字段的值不是
--001,就执行事件
begin
:new_value.addr :='北京市海淀区上地'; --在满足上述条件的情况下 更新或插入的这一条记录中addr
--字段的值将被置成:北京市海淀区上地
end test_division_trigger; --结束
3)测试
insert into PUB_T_DIVISION_TEST (DIVID, DIVNAME, SUPERID, DIVLVLID, ENDFLAG, ADDR,
POSTALCODE, TEL, DIVTYPE, ISSELF, BREVIARY, DEFPASSWORD, SHOWID, DISTRICTID, ISXZQH,
ADMINMANID)
values ('088009', '乡镇预算9', '088', '000100030001', '1', '', '', '', '01', '0', '', '', '088001', '', '0', ' ');
这条记录的superid是088 不等于001 所以这个条记录的addr的值将在插入前被置成:
北京市海淀区上地 而不是‘’
select * from pub_t_division_test where divid='088009'
addr的值被置成:北京市海淀区上地 而我们插入时是“”。
第五:存储过程
1)File>new->Program WIndow->Package
Name:test_package
Purpose: //不知道
2)create or replace package test_package as
type test_cursor is ref cursor; //建立一个cursor类型的变量test_cursor,为了返回一个结果集
end test_package;
3)File>new->Program WIndow->Procedure
Name: add_division_test // 存贮过程的名称,以后将以这个名称调用这个存贮过程
Parameters: temp_superid in varchar2, //需要输入的参数,字符型
temp_cursor out test_package.test_cursor //返回参数,名称是在包中定义的,
//这个类型的参数是为了返回结果集
4)
create or replace procedure add_division_test( --创建存贮过程
temp_superid in varchar2, --输入参数类型,根据情况而定,不一定每次都要有输入输出参数
temp_cursor out test_package.test_cursor --返回参数类型,如果不是一个结果集
可以使用varchar,number等基本类型
)
as --过程体
begin --过程开始
open temp_cursor for select * from
PUB_T_DIVISION_TEST f
where f.superid=temp_superid ; --将一个以select的结果集保存到我们事先定义好的cursor类型变量中去
end add_division_test;
5)使用
public void doTest_Procedure() {
Connection con = this.getConn();
CallableStatement csmt = null;
ResultSet rs = null;
System.out.println("------con:" + con);
String sql = "{call add_division_test(?,?)} ";//执行存贮过程的sql,参数个数要匹配
try {
csmt = con.prepareCall(sql);//必须使用CallableStatement
csmt.setString(1, "001"); //设置第一个参数的值
csmt.registerOutParameter(2, oracle.jdbc.OracleTypes.CURSOR);
//设置第二个参数的值,这个参数时输出参数,类型是cursor
csmt.execute(); //执行存储过程
//取出第二个参数的值,这个参数的值已经不是执行之前,现在其内容是存贮过程执行的结果,
rs=(ResultSet)csmt.getObject(2);
//并将其强制转换成为ResultSet,便于后续的操作
System.out.println("-------rs:"+rs);
int i=0;
while (rs.next()){//显示结果集中的内容
i++;
System.out.print("---["+i+"]---divid:"+rs.getString(1));
System.out.print("---divname:"+rs.getString(2));
System.out.print("---superid:"+rs.getString(3));
System.out.println();
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
if (rs != null) {
rs.close();
}
if (csmt != null) {
csmt.close();
}
if (con != null) {
con.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
上面的例子有时候会出现 :类型长度大于最大长度 或者 非法协议 等错误提示 ,
那是你的jdbc驱动版本的问题,到oracle网站上下载新的jdbc驱动安装就会好了
以上的一些东西 其实很简单 没有什么技术含量 希望通过它能让初学者入门
至于高手就不要看了
create table PUB_T_DIVISION_TEST(
DIVID VARCHAR2(30) not null,
DIVNAME VARCHAR2(60) not null,
SUPERID VARCHAR2(30) not null,
DIVLVLID VARCHAR2(30) not null,
ENDFLAG VARCHAR2(30) not null,
ADDR VARCHAR2(30),
POSTALCODE VARCHAR2(30),
TEL VARCHAR2(30),
DIVTYPE VARCHAR2(30),
ISSELF VARCHAR2(30),
BREVIARY VARCHAR2(30),
DEFPASSWORD VARCHAR2(30),
SHOWID VARCHAR2(30),
DISTRICTID VARCHAR2(30),
ISXZQH VARCHAR2(30),
ADMINMANID VARCHAR2(30)
)
tablespace EFMWEB
pctfree 10
initrans 1
maxtrans 255
storage
(
initial 64K
minextents 1
maxextents unlimited
);
插入几条数据:
insert into PUB_T_DIVISION_TEST (DIVID, DIVNAME, SUPERID, DIVLVLID, ENDFLAG, ADDR, POSTALCODE, TEL, DIVTYPE, ISSELF, BREVIARY, DEFPASSWORD, SHOWID, DISTRICTID, ISXZQH, ADMINMANID)
values ('001', '门头沟政府, '#', '0001', '0', '', '', '', '01', '0', '', '', '001', '', '', '');
insert into PUB_T_DIVISION_TEST (DIVID, DIVNAME, SUPERID, DIVLVLID, ENDFLAG, ADDR, POSTALCODE, TEL, DIVTYPE, ISSELF, BREVIARY, DEFPASSWORD, SHOWID, DISTRICTID, ISXZQH, ADMINMANID)
values ('087', '街道预算', '001', '00010002', '0', '', '', '', '01', '0', '', '', '087', '', '0', ' ');
insert into PUB_T_DIVISION_TEST (DIVID, DIVNAME, SUPERID, DIVLVLID, ENDFLAG, ADDR, POSTALCODE, TEL, DIVTYPE, ISSELF, BREVIARY, DEFPASSWORD, SHOWID, DISTRICTID, ISXZQH, ADMINMANID)
values ('087001', '街道预算', '087', '000100020001', '1', '', '', '', '01', '0', '', '', '087001', '', '0', ' ');
insert into PUB_T_DIVISION_TEST (DIVID, DIVNAME, SUPERID, DIVLVLID, ENDFLAG, ADDR, POSTALCODE, TEL, DIVTYPE, ISSELF, BREVIARY, DEFPASSWORD, SHOWID, DISTRICTID, ISXZQH, ADMINMANID)
values ('088', '乡镇预算', '001', '00010003', '0', '', '', '', '04', '0', '', '', '088', '', '', '');
insert into PUB_T_DIVISION_TEST (DIVID, DIVNAME, SUPERID, DIVLVLID, ENDFLAG, ADDR, POSTALCODE, TEL, DIVTYPE, ISSELF, BREVIARY, DEFPASSWORD, SHOWID, DISTRICTID, ISXZQH, ADMINMANID)
values ('088001', '乡镇预算', '088', '000100030001', '1', '', '', '', '01', '0', '', '', '088001', '', '0', ' ');
第二:使用PL/SQL连接上oracle,连接过程如下
1) 安装过程略,
2)配置PL/SQL:
打开 Tools->Preferences
假设你的oracal安装路径是:E:\java\ora90
那末:
Oracle Home:E:\java\ora90
Oci Libray:E:\java\ora90\bin\oci.dll //这里主要是指出oci.dll的存放位置
点击“apply”"OK"。
以上的设置是建立在你已经安装了oracle的客户端程序,如果不想安装oracle的客户端也想使用PL/SQL
在本地连接 远程的oracle服务器,你需要一个绿色版的客户端,这个客户端很小,大概在10几M,解压缩到一定路径,根据实际路径设定
Oracle Home和Oci Libray的值,并仿照这个路径E:\java\ora90\network\admin\tnsnames.ora建立tnsnames.ora文件
3)更改配置文件
使用文本编辑器打开E:\java\ora90\network\admin\tnsnames.ora 文件,
DFCS =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.111)(PORT = 6666))
)
(CONNECT_DATA =
(SERVICE_NAME = dddd)
)
)
Host是你需要连接oracle服务器的地址,不一定是本地
Port是oracle服务器的端口,根据实际情况进行设定
Service_Name是服务器上的服务名称,根据实际情况设定
4)重新启动pl/sql,填写用户名和密码 还有SERVICE_NAME 就可以登陆了
不能登陆pl/sql有以下几种可能:
a)密码帐号错误
b)已经安装过oracle,卸载不完整,遗留了环境变量,在使用绿色版客户端时总是提示找不到服务ID,
可以手动更新原有的oracle环境变量恢复成安装以前,就可以了
第三:函数
可以看我转载的‘oracle函数大全’,或者你去搜
第四:触发器
1)File>new->Program WIndow->Trigger
Name:test_division_trigger //触发器的名称,触发器不能被直接调用,只能由数据库的操作间接调用
Fires: before //需要被触发的操作是在事件执行前(before)或者后(after)才被执行
Event: insert //触发时件是什么类型的,insert:当有插入操作时触发才被执行,update,delete
Table or View: pub_t_division_test//操作的表明称
StatementLevel: //不知道
2)
create or replace trigger test_division_trigger -- 创建触发器,如果已经存在同名的触发器,这个
--将覆盖原有的
after update or insert --确定事件在有更新或者插入操作时才被触发
of superid --触动触发条件的参数名称
on pub_t_division_test --表名,还没有研究多个表的情况
referencing old as old_value --定义新值 就值
new as new_value
for each row
when (new_value.superid<>'001' ) --触发条件:在更新或者插入的心智当中的superid字段的值不是
--001,就执行事件
begin
:new_value.addr :='北京市海淀区上地'; --在满足上述条件的情况下 更新或插入的这一条记录中addr
--字段的值将被置成:北京市海淀区上地
end test_division_trigger; --结束
3)测试
insert into PUB_T_DIVISION_TEST (DIVID, DIVNAME, SUPERID, DIVLVLID, ENDFLAG, ADDR,
POSTALCODE, TEL, DIVTYPE, ISSELF, BREVIARY, DEFPASSWORD, SHOWID, DISTRICTID, ISXZQH,
ADMINMANID)
values ('088009', '乡镇预算9', '088', '000100030001', '1', '', '', '', '01', '0', '', '', '088001', '', '0', ' ');
这条记录的superid是088 不等于001 所以这个条记录的addr的值将在插入前被置成:
北京市海淀区上地 而不是‘’
select * from pub_t_division_test where divid='088009'
addr的值被置成:北京市海淀区上地 而我们插入时是“”。
第五:存储过程
1)File>new->Program WIndow->Package
Name:test_package
Purpose: //不知道
2)create or replace package test_package as
type test_cursor is ref cursor; //建立一个cursor类型的变量test_cursor,为了返回一个结果集
end test_package;
3)File>new->Program WIndow->Procedure
Name: add_division_test // 存贮过程的名称,以后将以这个名称调用这个存贮过程
Parameters: temp_superid in varchar2, //需要输入的参数,字符型
temp_cursor out test_package.test_cursor //返回参数,名称是在包中定义的,
//这个类型的参数是为了返回结果集
4)
create or replace procedure add_division_test( --创建存贮过程
temp_superid in varchar2, --输入参数类型,根据情况而定,不一定每次都要有输入输出参数
temp_cursor out test_package.test_cursor --返回参数类型,如果不是一个结果集
可以使用varchar,number等基本类型
)
as --过程体
begin --过程开始
open temp_cursor for select * from
PUB_T_DIVISION_TEST f
where f.superid=temp_superid ; --将一个以select的结果集保存到我们事先定义好的cursor类型变量中去
end add_division_test;
5)使用
public void doTest_Procedure() {
Connection con = this.getConn();
CallableStatement csmt = null;
ResultSet rs = null;
System.out.println("------con:" + con);
String sql = "{call add_division_test(?,?)} ";//执行存贮过程的sql,参数个数要匹配
try {
csmt = con.prepareCall(sql);//必须使用CallableStatement
csmt.setString(1, "001"); //设置第一个参数的值
csmt.registerOutParameter(2, oracle.jdbc.OracleTypes.CURSOR);
//设置第二个参数的值,这个参数时输出参数,类型是cursor
csmt.execute(); //执行存储过程
//取出第二个参数的值,这个参数的值已经不是执行之前,现在其内容是存贮过程执行的结果,
rs=(ResultSet)csmt.getObject(2);
//并将其强制转换成为ResultSet,便于后续的操作
System.out.println("-------rs:"+rs);
int i=0;
while (rs.next()){//显示结果集中的内容
i++;
System.out.print("---["+i+"]---divid:"+rs.getString(1));
System.out.print("---divname:"+rs.getString(2));
System.out.print("---superid:"+rs.getString(3));
System.out.println();
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
if (rs != null) {
rs.close();
}
if (csmt != null) {
csmt.close();
}
if (con != null) {
con.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
上面的例子有时候会出现 :类型长度大于最大长度 或者 非法协议 等错误提示 ,
那是你的jdbc驱动版本的问题,到oracle网站上下载新的jdbc驱动安装就会好了
以上的一些东西 其实很简单 没有什么技术含量 希望通过它能让初学者入门
至于高手就不要看了
发表评论
文章已被作者锁定,不允许评论。
-
JVM调优的陷阱
2011-10-24 13:01 1981开这帖的目的是想让大家了解到,所谓“标准参数”是件很微妙的事情 ... -
高效的Java异常处理框架
2009-06-23 10:58 1364一、 异常的概念和Java异常体系结构 异常是程序 ... -
六种异常处理的陋习
2009-06-23 10:23 773你觉得自己是一个Java专 ... -
HTML Response ContentType 大全
2009-06-18 13:19 977".*"="applicatio ... -
Oracle入门基本知识一点通
2009-02-11 16:00 1036引自http://www.oraclebbs.com/ ... -
javaFx环境变量配置
2009-02-09 11:01 39991)安装javafx_sdk-1_0_1-windows-i5 ... -
部署Log4j
2009-02-04 17:20 8481、拷贝"log4j-1.2.7.jar" ... -
eclipse debug 入门
2009-02-04 17:20 19901.Step Into (also F5) 跳入 2.Step ... -
AbstractWizardFormController 实例
2009-02-04 17:19 2035由于工作需要,需要经多个表单在最后一部进行操作,觉得sprin ... -
学习笔记:DB2 9 管理 - 2
2009-02-04 17:18 947DB2 9 管理 第 1 部分:服务器管理 二、DB2 客 ... -
学习笔记:DB2 9 管理 - 1
2009-02-04 17:17 680DB2 9 管理 第 1 部分:服务器管理 一、DB2 实 ... -
面向对象程序设计的61条原则收藏
2009-02-04 17:16 712(1)所有数据都应该隐藏在所在的类的内部。 (2)类的使 ... -
POI读写Excel文件
2009-02-04 17:15 1649约定:POI项目2.0版现在已经接近正式发行阶段,开发进度迅速 ... -
GBK字符集知识收藏
2009-02-04 17:14 1207GB码与BIG5是中国人常用 ... -
J2EE程序中的SQL语句自动构造方法收藏
2009-02-04 17:12 688INSERT、DELETE、UPDATE 三种SQL语句是数据 ... -
oracle 函数大全收藏
2009-02-04 17:11 951常用oracle函数 SQL中的单记录函数 1.ASCII ... -
PLSQL循序渐进全面学习教程(全)收藏
2009-02-04 17:08 2129康师傅 2008年01月24日( ... -
oracle系统命令收藏
2009-02-04 17:06 8980 查看表的结构其中的一种做法: select COL ... -
oracle的SQLPLUS命令大全收藏
2009-02-04 17:04 1678Oracle的sql*plus是与oracle ...
相关推荐
### Oracle 9i PL/SQL程序设计笔记精要 #### PL/SQL基础知识概览 **标题与描述**:本文档围绕“Oracle 9i PL/SQL程序设计笔记”这一核心主题,深入探讨了PL/SQL语言的基础知识及其在Oracle 9i数据库环境中的应用。...
Oracle 10g PL/SQL 是Oracle数据库系统中用于创建和管理存储过程、函数、触发器等数据库对象的编程语言。本教程旨在为初学者提供一个全面的学习平台,同时也为经验丰富的开发者提供参考资料。PL/SQL是Oracle特有的...
PL/SQL是Oracle数据库中用于创建存储过程、函数、触发器、包等数据库对象的主要工具。第4版特别关注了在Oracle 11g环境下的新特性,如性能优化、错误处理和并发控制等。 1. **基础语法**:PL/SQL的基础包括声明变量...
Oracle PL/SQL是一种强大的编程语言,它结合了SQL的数据处理能力与PL的程序设计特性,是Oracle数据库系统中用于创建存储过程、函数、触发器和包的主要工具。在这个"Oracle PL/SQL实战(待续)"的主题中,我们将深入...
除了基本的数据库对象创建,PL/SQL还允许我们编写存储过程、函数、触发器等,以实现更复杂的业务逻辑。例如,我们可以创建一个存储过程来处理学生选课: ```sql CREATE OR REPLACE PROCEDURE enroll_student( p_...
Oracle PL/SQL是一种...书中可能包含各种类型的PL/SQL程序设计技巧,从简单的存储过程和函数到复杂的事务处理和并发控制策略。通过实例学习,你将能够更好地理解和运用这些概念,提升你在Oracle数据库开发中的技能。
PL/SQL Developer是一款专为Oracle数据库开发人员设计的集成开发环境(IDE),它极大地提高了编写、调试和管理PL/SQL代码的效率。该软件由Allround Automations公司开发,是许多Oracle开发者首选的工具之一。7.1.5....
ORACLE PL/SQL是从入门到精通的专业知识,涵盖了数据库开发与管理的多个方面,包括触发器、过程、函数、软件包、异常处理、游标、循环、分支、变量使用、数据库安装等关键知识点。 触发器是数据库中用来保证数据...
8. **存储过程和函数**:在数据库服务器端执行的PL/SQL代码,可以提高性能,减少网络通信,并提供安全性的提升。 9. **索引和性能优化**:了解如何创建和使用索引,以及通过PL/SQL分析和优化SQL查询性能。 10. **...
Oracle PL/SQL是一种强大的编程语言,它结合了SQL(结构化查询语言)的数据库操作功能与PL/SQL的程序设计特性,广泛应用于Oracle数据库的开发和管理。这本书"Oracle PL/SQL从入门到精通"的配套源代码,显然是为了...
总之,Oracle PL/SQL中的存储过程、函数和触发器为数据库开发提供了强大的工具,它们使得数据库不仅仅是一个数据存储的地方,更是业务逻辑的执行平台。深入理解和熟练掌握这些概念,对于任何Oracle数据库管理员或...
PL/SQL是Oracle数据库系统中的一个关键组成部分,它是一种过程化语言,专为数据库操作设计。这个"PL/SQL最新中文手册"显然是一份详细解释PL/SQL 7.0版本的指南,对于学习和精通Oracle数据库编程至关重要。以下是手册...
Oracle存储过程和触发器(PL/SQL入门教程) Oracle存储过程和触发器(PL/SQL入门教程)
Oracle数据库是全球广泛使用的大型关系型数据库管理系统之一,SQL(结构化查询语言)是与所有关系数据库进行交互的标准语言,而PL/SQL是Oracle数据库特有的编程语言,它扩展了SQL的功能,使得数据库管理、开发和维护...
Oracle PL/SQL 是一种高级编程语言,用于开发 Oracle 数据库中的存储过程、函数和触发器。PL/SQL language 提供了强大的编程能力,可以实现复杂的业务逻辑,并且与 Oracle 数据库紧密集成。 一、Oracle 简介 ...
《Oracle PL/SQL专家指南-高级PL/SQL解决方案的设计与开发》是一本深入探讨Oracle数据库中的PL/SQL编程的专业书籍。PL/SQL是Oracle数据库特有的编程语言,它结合了SQL的查询能力与过程式编程语言的功能,使得数据库...
本书是一本逐步分解的,详尽的pl/sql编程教程,使用真实场景的试验、范例和练习来介绍读者所需的pl/sql编程技能,涵盖oracle 11g的最新特性。作者的写作手法源自于在哥伦比亚大学教授pl/sql编程技术的经验,深度...
Oracle数据库是世界上最广泛使用的数据库管理系统之一,SQL(结构化查询语言)是用于管理和操作数据库的标准语言,而PL/SQL则是Oracle公司为Oracle数据库设计的一种过程式编程语言,它结合了SQL的功能并增加了流程...
### Oracle9i: Program with PL/SQL 学生指导 #### 知识点概述 《Oracle9i: Program with PL/SQL 学生指导》是一本面向初学者的专业书籍,旨在帮助学生掌握如何使用PL/SQL编程语言进行Oracle9i数据库的开发与管理...
Oracle PL/SQL是一种强大的编程语言,它将SQL与过程编程语言的特性相结合,为数据库开发提供了丰富的功能。在Oracle数据库环境中,PL/SQL是开发高效、可靠和可维护的数据库应用程序的关键工具。以下是对"Oracle PL/...