1:http://eduunix.ccut.edu.cn/index2/database/Oracle%20Instant%20Client/ 下载你需要的Oracle Instant Client、
免安装
Oracle
客户端使用
PL/SQL
连接
Oracle
大家都知道,用
PL/SQL
连接
Oracle
,是需要安装
Oracle
客户端软件的。有没要想过不安装
Oracle
客户端直接连接
Oracle
呢?
利用
Oracle
提供的
Instant Client Package
只需要在
Oracle
下载一个叫
Instant Client Package
的软件就可以了,这个软件不需要安装,只要解压就可以用了,很方便,就算重装了系统还是可以用的。
Instant Client Package - Basic
包。然后解压到任意目录,在这个目录下建立
NETWORK
文件夹,接着再这个文件夹下再建立
ADMIN
文件夹,然后在
ADMIN
内建立
tnsnames.ora
文件,内容如下:
yourDataBaseName =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = yourhostIp )(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = yourSID )
)
)
例如:
# TNSNAMES.ORA Network Configuration File: C:\oracle\ora90\NETWORK\ADMIN\tnsnames.ora
# Generated by Oracle configur ......
一、 什么是触发器?
数据库触发器是一个存储的PL/SQL程序块,它与一个基表联系,当在表上执行特定的数据库维护(插入、删除、更新这三种操作)时,隐含地执行一个PL/SQL程序块。
二、触发器的作用:
。防止非法的数据库操纵、维护数据库安全
。对数据库的操作进行审计,存储历史数据
。完成数据库初始化处理
。控制数据库的数据完整性
。进行相关数据的修改
。完成数据复制
。自动完成数据库统计计算
。限制数据库操作的时间、权限等,控制实体的安全性
三、触发器的组成:
1、触发时间:触发器事件的时间次序(before, afer)[2]
2、触发事件:什么SQL语句会引起触发器触发(Insert, delete, update)[3]
3、触发子体:触发器触发时要执行的操作(一个完整的PL/SQL程序)
4、触发类型:触发器被执行的次数(语句级、行级)[2] //语句级只执行一次,行级会执行多次。
[*]一个表上最多可以创建12个不同类型的触发器:3*2*2 = 12
四、创建触发器注意事项:
1、在触发器中可以调用存储过程、包;在存储过程中不得调用触发器。
2、在触发器中不得使用commit, rollback, savepoint语句。
3、在触发器中不 ......
在程序中使用SQLDriverConnect连接oracle数据库
没有关闭SQL句柄就退出程序了。
结果在DEBUG模式下出现死循环,还是在ExitProcess函数里,
以前没有碰到打开后不关闭程序会无法退出,也没见过ExitProcess不能退出来的。
猜想是不是oracle的dll没做好退出这个过程。
通过加以下关闭函数,程序终于正常退出了
SQLRETURN retcode;
retcode = SQLDisconnect(m_hdbc);
if(retcode != 0)
{
cout<<"close ql err"<<endl;
return false;
}
//retcode = SQLFreeHandle(SQL_HANDLE_DBC, m_hdbc);
retcode=SQLFreeConnect(m_hdbc);
if(retcode != 0)
{
cout<<"close ql err"<<endl;
return false;
}
retcode=SQLFreeEnv(m_henv);//此函数要注意,如果不调用,程序还是退不出来的。一定要注意啊
if(retcode != 0)
{
cout<<"close ql err"<<endl;
return false;
} ......
本文讨论了如何使用 ADO.NET 访问 Oracle 存储过程(称为 SQL 编程块)和函数(返回单个值的编程块)。
您可以使用以下托管数据提供程序连接到 Oracle 数据库:Microsoft .NET Oracle 提供程序、OLE DB .NET 提供程序、ODBC .NET 数据提供程序以及 Oracle 的 ODP.NET 提供程序。本文使用用于 Oracle 的 Microsoft?.NET 框架数据提供程序。使用 Oracle ODP.NET 数据提供程序或用于 OLE DB 的 Microsoft .NET 框架数据提供程序时可使用不同的功能。
Oracle .NET 数据提供程序随 .NET 框架 1.1 一起提供。如果您使用的是 .NET 框架 1.0,您将需要下载 .NET Managed Provider for Oracle。无论是哪个版本,数据提供程序类都位于 System.Data.OracleClient 命名空间中。
概述
PL/SQL 是 SQL 的 Oracle 实现。它与 Microsoft?SQL Server? 所使用的 T-SQL 类似,但也有一些不同之处,本文稍后对此进行了详细讨论。与 T-SQL 一样,PL/SQL 扩展了标准 SQL。PL/SQL 用于定义命名编程块,如存储过程、函数和触发器。
返回页首
类
可使用 System.Data.OracleClient 命名空间中类的子集来执行 Oracle 存储过程和函数。下表对这些类进行了说明:
类
说明
OracleCommand
针对 O ......
软件环境:
1、Windows XP + Oracle 10g
2、Oracle安装路径为:d:\Oracle
实现方法:
0、开始->设置->控制面板->添加删除程序-> Oracle Data Provider for .Net Help
1、开始->设置->控制面板->管理工具->服务停止所有Oracle服务;
2、开始->程序->Oracle – OraDb10g_home1>Oracle Installation Products-> Universal Installer 卸装所有Oracle产品,但Universal Installer本身不能被删除;
3、运行regedit,选择HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE,按del键删除这个入口;
4、运行regedit,选择HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services,滚动这个列表,删除所有Oracle入口;
5、运行regedit,选择HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application,删除所有Oracle入口;
6、开始->设置->控制面板->系统->高级->环境变量,删除环境变量CLASSPATH和PATH中有关Oracle的设定; ......
oracle中connect by prior实现递归查询
收集的几条在oracle中通过connect by prior来实现递归查询
Start with...Connect By子句递归查询一般用于一个表维护树形结构的应用。
创建示例表:
CREATE TABLE TBL_TEST
(
ID NUMBER,
NAME VARCHAR2(100 BYTE),
PID NUMBER DEFAULT 0
);
插入测试数据:
INSERT INTO TBL_TEST(ID,NAME,PID) VALUES('1','10','0');
INSERT INTO TBL_TEST(ID,NAME,PID) VALUES('2','11','1');
INSERT INTO TBL_TEST(ID,NAME,PID) VALUES('3','20','0');
INSERT INTO TBL_TEST(ID,NAME,PID) VALUES('4','12','1');
INSERT INTO TBL_TEST(ID,NAME,PID) VALUES('5','121','2');
从Root往树末梢递归
select * from TBL_TEST
start with id=1
connect by prior id = pid
从末梢往树ROOT递归
select * from TBL_TEST
start with id=5
connect by prior pid = id
====================== ......