免安装Oracle客户端使用PL/SQL连接 Oracle
1. 到Oracle网站下载一个叫Instant Client Package的软件,这个软件不需要安装,只要解压就可以用了。下载地址:http://www.oracle.com/technology /software/tech/oci/instantclient/htdocs/winsoft.html。
2.下载软件包后解压到任意目录(例如:D:\Program Files\oracle_client),在这个目录下建立NETWORK文件夹,然后再在其下建立ADMIN文件夹,然后建立 tnsnames.ora文件,内容大致如下:
RFITMS =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.88.248.95 )(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = rfitms)
)
)
这里根据自己的实际情况设置。
3. 接着打开PL/SQL,配置tools->preferences->connection
Oracle Home=D:\Program Files\oracle_client\instantclient10_1
OCI library=D:\Program Files\oracle_client\instantclient10_1\oci.dll
这里也是根据自己的实际情况设置。
4.添加一个环境变量,名为TNS_ADMIN,值为tnsnames.ora文件所在路径(例如:D:\Program
Files\oracle_client\NETWORK\ADMIN),这是为了能够找到上面说的 tnsnames.ora。同时设置ORACLE的语言,需添加环境变量:NLS_LANG = SIMPLIFIED CHINESE_CHINA.ZHS16GBK。
5.重启PLsql
本文链接
既然会看ORACLE递归查询那么大家应该是比较清楚递归是什么意思了,在这里我就不多加说明了,只作简单介绍了。
言归正传所谓递归查询那么数据表中数据的结构应该是符合递归查询的基本条件,即表中有ID,PID(节点编号、父节点编号)如果把数据以UI的方式展现出来应该是一棵或多棵树了。
那么我们要以其中一个节点去递归查询出这个节点子节点或父节点的过程就是我们所要说明的。
递归查询语法:
select ... from tablename where 条件4 start with 条件1 connect by 条件2 AND 条件3
如下面的表结构http://www.cnblogs.com/wanghonghu/archive/2012/08/31/2665945.html
CREATE TABLE SC_DISTRICT
(
IID NUMBER(10) NOT NULL,
PARENT_ID NUMBER(10),
INAME VARCHAR2(255 BYTE) NOT NULL,
BZ NUMBER(4)
);
ALTER TABLE SC_DISTRICT ADD (
CONSTRAINT SC_DISTRICT_PK
PRIMARY KEY
(IID));
ALTER TABLE SC_DISTRICT ADD (
CONSTRAINT SC_DISTRICT_R01
FOREIGN KEY (PARENT_ID)
REFERENCES SC_DISTRICT (IID));
INSERT INTO SC_DISTRICT(IID,INAME) VALUES(1,'四川省');
INSERT INTO SC_DISTRICT(IID,PARENT_ID,INAME,BZ) VALUES(2,1,'巴中市',0);
INSERT INTO SC_DISTRICT(IID,PARENT_ID,INAME,BZ) VALUES(3,1,'达州市',0);
下面这些都是Oracle数据库连接字符串,总结的非常详细,但不是我总结的,我也是刚刚接触Oracle正是学习的过程。把它贴出来,一是方便自己以后再使用的时候方便寻找,二呢也是给需要的你们提供便利,万一你要是忘了,是吧。很受用,学习了!!!
ODBC
新版本
Driver={Microsoft ODBC for Oracle};Server=myServerAddress;Uid=myUsername;Pwd=myPassword;
旧版本
Driver={Microsoft ODBC Driver for Oracle};ConnectString=OracleServer.world;Uid=myUsername;Pwd=myPassword;
OLE DB, OleDbConnection (.NET)
标准连接,此连接字符串适用了微软的驱动。
Provider=msdaora;Data Source=MyOracleDB;User Id=myUsername;Password=myPassword;
受信连接
Provider=msdaora;Data Source=MyOracleDB;Persist Security Info=False;Integrated Security=Yes;
标准连接,由Oracle提供的驱动。
Provider=OraOLEDB.Oracle;Data Source=MyOracleDB;User Id=myUsername;Password=myPassword;
受信连接
Provider=OraOLEDB.Oracle;Data Source=MyOracleDB;OSAuthent=1;
Oracle.DataAccess.Client.OracleConnection
Data Source=TORCL;User Id=myUsername;Password=myPassword;
标准安全连接
Data Source=TORCL;Integrated Security=SSPI;
使用ODP.NET而不使用tnsnames.ora
Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=MyHost)(PORT=MyPort)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=MyOracleSID)));User Id=myUsername;Password=myPassword;
OracleConnection, Oracle Data Provider, ODP.NET, System.Data.OracleClient.OracleConnection
标准
Data Source=MyOracleDB;Integrated Security=yes;
用于8i RC3及以后的版本
指定用户名和密码
Data Source=MyOracleDB;User Id=myUsername;Password=myPassword;Integrated Security=no;
用于8i RC3及以后的版本
忽略tnsnames.ora,另一种不需要使用DSN的连接方式。
SERVER=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=MyHost)(PORT=MyPort))(CONNECT_DATA=(SERVICE_NAME=MyOracleSID)));uid=myUsername;pwd=myPassword;
使用上面的连接字符串可能会导致Visual Studio报告错误,如果您在使用中出现了这些问题,请使用下面的这种连接方式。
Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=MyHost)(PORT=MyPort))(CONNECT_DATA=(SERVICE_NAME=MyOracleSID)));User Id=myUsername;Password=myPassword;
使用连接池
如果连接池服务程序找不到已经存在的连接池,它将根据连接字符串创建一个新的池,否则将循环使用池中已存在的连接。
Data Source=myOracleDB;User Id=myUsername;Password=myPassword;Min Pool Size=10;Connection Lifetime=120;Connection Timeout=60;Incr Pool Size=5;Decr Pool Size=2;
Windows身份验证
Data Source=myOracleDB;User Id=/;
特权连接
使用SYSDBA
Data Source=myOracleDB;User Id=SYS;Password=SYS;DBA Privilege=SYSDBA;
特权连接
使用SYSOPER
Data Source=myOracleDB;User Id=SYS;Password=SYS;DBA Privilege=SYSOPER;
复制
密码过期处理过程
当使用一个连接字符串连接数据库后,出现“密码已过期”的错误时,请执行OpenWithNewPassword命令来提供新密码。
Data Source=myOracleDB;User Id=myUsername;Password=myPassword;
oConn.OpenWithNewPassword(sTheNewPassword);
Proxy验证
Data Source=myOracleDB;User Id=myUsername;Password=myPassword;Proxy User Id=pUserId;Proxy Password=pPassword;
Core Labs OraDirect (.NET)
User ID=myUsername;Password=myPassword;Host=ora;Pooling=true;Min Pool Size=0;Max Pool Size=100;Connection Lifetime=0;
MS Data Shape
Provider=MSDataShape.1;Persist Security Info=False;Data Provider=MSDAORA;Data Source=orac;User Id=myUsername;Password=myPassword;
本文链接