如何连接oracle9i--------------------听说标题要长

jkj9999 2011-12-01 05:20:10
下午试了一下oci,没有成功

不知道大家有什么又好又简单的方法

1. vs2005,c#,oracle client
2. 不用net framework
3. 操作尽可能方便,不用配置

顶帖有分,明天12点结贴!

...全文
101 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
jkj9999 2011-12-02
  • 打赏
  • 举报
回复
10楼的算最后答案吗?

哈哈,就当散分了,结贴
vrhero 2011-12-02
  • 打赏
  • 举报
回复
“不用net framework”?那不是扯淡吗...ODP.NET都离不开.NET Framework...
小志 2011-12-02
  • 打赏
  • 举报
回复
用Oracle Data Provider for .NET / ODP.NET
请参考:http://www.connectionstrings.com/oracle
段传涛 2011-12-02
  • 打赏
  • 举报
回复
我收集的。
Oracle XE

标准连接

Oracle XE(或者"Oracle Database 10g Express Edition")是一个简单免费发布的版本。

以下是语法格式:

Driver=(Oracle in XEClient);dbq=111.21.31.99:1521/XE;Uid=myUsername;Pwd=myPassword;


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。

以下是语法格式:

Provider=msdaora;Data Source=MyOracleDB;User Id=myUsername;Password=myPassword;


信任连接

以下是语法格式:

Provider=msdaora;Data Source=MyOracleDB;Persist Security Info=False;Integrated Security=Yes;


标准安全连接

此连接方式使用来自Oracle的Provider。

以下是语法格式:

Provider=OraOLEDB.Oracle;Data Source=MyOracleDB;User Id=myUsername;Password=myPassword;


信任连接

以下是语法格式:

Provider=OraOLEDB.Oracle;Data Source=MyOracleDB;OSAuthent=1;





以下是语法格式:

Provider=OraOLEDB.Oracle;Data Source=(DESCRIPTION=(CID=GTU_APP)(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=myHost)(PORT=myPort)))(CONNECT_DATA=(SID=MyOracleSID)(SERVER=DEDICATED)));User Id=myUsername;Password=myPassword;


Oracle.DataAccess.Client.OracleConnection

标准连接

以下是语法格式:

Data Source=TORCL;User Id=myUsername;Password=myPassword;


带integrated security的连接

以下是语法格式:

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


仅在Oracle8i release 3 或更高版本


指明用户密与密码的连接

以下是语法格式:

Data Source=MyOracleDB;User Id=myUsername;Password=myPassword;Integrated Security=no;


这是另一种连接方式不依赖你的DNS.You create a connection string based on the format used in the tnsnames.ora file without the need to actually have one of these files on the client pc.






以下是语法格式:

SERVER=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=MyHost)(PORT=MyPort))(CONNECT_DATA=(SERVICE_NAME=MyOracleSID)));uid=myUsername;pwd=myPassword;


Some reported problems with the one above and Visual Studio. Use the next one if you've encountered problems.




以下是语法格式:

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=/;



特权连接


使用SYSOPER的特权




以下是语法格式:

Data Source=myOracleDB;User Id=SYS;Password=SYS;DBA Privilege=SYSOPER;


利用密码终止函数




当第一次打开连接时,当打开链接后,一个密码过期错误被抛出,捕获这个错误并执行OpenWithNewPassword命令行设置新密码。


以下是语法格式:

Data Source=myOracleDB;User Id=myUsername;Password=myPassword;

oConn.OpenWithNewPassword(sTheNewPassword);


代理验证



以下是语法格式:

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;


Data Shape


MS Data Shape

以下是语法格式:

Provider=MSDataShape.1;Persist Security Info=False;Data Provider=MSDAORA;Data Source=orac;User Id=myUsername;Password=myPassword;
段传涛 2011-12-02
  • 打赏
  • 举报
回复
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;
[Page]

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)

Standard
User ID=myUsername;Password=myPassword;Host=ora;Pooling=true;Min Pool Size=0;Max Pool Size=100;Connection Lifetime=0;


Data Shape

MS Data Shape
Provider=MSDataShape.1;Persist Security Info=False;Data Provider=MSDAORA;Data Source=orac;User Id=myUsername;Password=myPassword;
段传涛 2011-12-02
  • 打赏
  • 举报
回复
2. 不用net framework
啥意思 ,不用ADO.net吗?
ZhangNan20100811 2011-12-02
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 sandy945 的回复:]
http://topic.csdn.net/u/20100416/01/28f0661a-7dfb-42c1-acc9-072efd3b449b.html
[/Quote]
+1
jkj9999 2011-12-02
  • 打赏
  • 举报
回复
谢谢楼上两位

按照上面的方法试了,文件目录属性也改了
添加引用时提示oci.dll不是com组件,oci.dll单独注册也不行

thin驱动没试
阿非 2011-12-01
  • 打赏
  • 举报
回复
不用net framework ?
BillChang 2011-12-01
  • 打赏
  • 举报
回复
把配置写到连接字符串上就不用配置了
Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=*.*.*.*)(PORT=1521)))(CONNECT_DATA=(sid =****)));User Id=****;Password=****

110,529

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧