Oracle数据库连接字符串
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Oracle数据库连接字符串(经典大全)
2009-08-21 14:36
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;
使用而不使用tnsnames.ora
Data
Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=MyHost)(PORT=MyPort)))(C ONNECT_DATA=(SERVER=DEDICA TED)(SERVICE_NAME=MyOracleSID)));User
Id=myUsername;Password=myPassword;
OracleConnection, Oracle Data Provider, , 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=(S ERVICE_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
Oracle数据类型简介
一、概述
在ORACLE8中定义了:标量(SCALAR)、复合(COMPOSITE)、引用(REFERENCE)和LOB四种数据类型,下面详细介绍它们的特性。
二、标量(SCALAR)
合法的标量类型与数据库的列所使用的类型相同,此外它还有一些扩展。
它又分为七个组:数字、字符、行、日期、行标识、布尔和可信。
数字,它有三种基本类型--NUMBER、PLS_INTEGER和BINARY_INTENER。
NUMBER可以描述整数或实数,而PLS_INTEGER和BINARY_INTENER只能描述整数。
NUMBER,是以十进制格式进行存储的,它便于存储,但是在计算上,系统会自动的将它转换成为二进制进行运算的。
它的定义方式是NUMBER(P,S),P是精度,最大38位,S是刻度范围,可在-84 (127)
间取值。
例如:NUMBER(5,2)可以用来存储表示-999.99...999.99间的数值。
P、S可以在定义是省略,例如:NUMBER(5)、NUMBER等;
BINARY_INTENER用来描述不存储在数据库中,但是需要用来计算的带符号的整数值。
它以2的补码二进制形式表述。
循环计数器经常使用这种类型。
PLS_INTEGER和BINARY_INTENER唯一区别是在计算当中发生溢出时,BINARY_INTENER型的变量会被自动指派给一个NUMBER型而不会出错,PLS_INTEGER型的变量将会发生错误。
字符,包括CHAR、VARCHAR2(VARCHAR)、LONG、NCHAR和NVARCHAR2几种类型。
CHAR,描述定长的字符串,如果实际值不够定义的长度,系统将以空格填充。
它的声明方式如下CHAR (L),L为字符串长度,缺省为1,作为变量最大32767个字符,作为数据存储在ORACLE8中最大为2000。
VARCHAR2(VARCHAR),描述变长字符串。
它的声明方式如下VARCHAR2(L),L为字符串长度,没有缺省值,作为变量最大32767个字节,作为数据存储在ORACLE8中最大为4000。
在多字节语言环境中,实际存储的字符个数可能小于L值,例如:当语言环境为中文(SIMPLIFIED
CHINESE_CHINA.ZHS16GBK)时,一个VARCHAR2(200)的数据列可以保存200个英文字符或者100个汉字字符。
LONG,在数据库存储中可以用来保存高达2G的数据,作为变量,可以表示一个最大长度为32760字节的可变字符串。
NCHAR、NVARCHAR2,国家字符集,与环境变量NLS指定的语言集密切相关,使用方法和CHAR、VARCHAR2相同。
行,包括RAW和LONG RAW两种类型。
用来存储二进制数据,不会在字符集间转换。
RAW,类似于CHAR,声明方式RAW(L),L为长度,以字节为单位,作为数据库列最大2000,作为变量最大32767字节。
LONG RAW,类似于LONG,作为数据库列最大存储2G字节的数据,作为变量最大32760字节。
日期,只有一种类型--DATE,用来存储时间信息,站用7个字节(从世纪到秒),绝对没有“千年虫”问题。
行标识,只有一种类型--ROWID,用来存储“行标识符”,可以利用ROWIDTOCHAR函数来将行标识转换成为字符。
布尔,只有一种类型--BOOLEAN,仅仅可以表示TRUE、FALSE或者NULL。
可信,只有一种类型--MLSLABEL,可以在TRUSTED ORACLE中用来保存可变长度的二进制标签。
在标准ORACLE中,只能存储NULL值。
三、复合(COMPOSITE)
标量类型是经过预定义的,利用这些类型可以衍生出一些复合类型。
主要有记录、表。
记录,可以看作是一组标量的组合结构,它的声明方式如下:
TYPE record_type_name IS RECORD
( filed1 type1 [NOT NULL] [:=expr1]
.......
filedn typen [NOT NULL] [:=exprn] )
其中,record_type_name是记录类型的名字。
(是不是看着象CREATE TABLE?......)引用时必须定义相关的变量,记录只是TYPE,不是VARIABLE。
表,不是物理存储数据的表,在这里是一种变量类型,也称为PL/SQL表,它类似于C语言中的数组,在处理方式上也相似。
它的声明方式如下:
TYPE table_type_name IS TABLE OF scalar_type INDEX BY BINARY_INTENER;
其中,table_type_name是类型的名字,scalar_type是一种标量类型的类型声明。
引用时也必须定义相关的变量。
表和数组不同,表有两列,KEY和VALUE,KEY就是定义时声明的BINARY_INTENER,VALUE就是定义时声明的scalar_type。
除了记录和表之外,还有对象类型、集合(嵌套表和VARRAYS)等类型,这些将专门讲解。
四、引用(REFERENCE)
在PL/SQL8.0之前,只有一种类型--REF CURSOR,也就是游标。
它的定义较为简单,
CURSOR cursor_name IS select .....from.....;
在PL/SQL8.0之后,引入了REF类型,它指向一个对象。
这种类型将单独讲解。
(等我弄明白再说,免得在高人面前......)
五、LOB型
LOB变量主要是用来存储大量数据的数据库字段,最大可以存储4G字节的内容(这么大,存VCD?,浪费!)。
主要有:
CLOB:和ORACLE7中的LONG类型相似,存储单字节字符数据。
(别用来存中文喔。
)NCLOB:用来存储定宽多字节字符数据。
(例如:存《啸傲江湖》就挺好)
BLOB:和LONG RAW相似,用来存储无结构的二进制数据。
BFILE:它用来允许ORACLE对数据库外存储的大型二进制文本进行只读形式的访问。
Trackback: /TrackBack.aspx?PostId=370721
Oracle数据类型(转)
Character 数据类型
Character 数据类型用来存储字母数字型数据。
当你在oracle 中定义一个character 数据时,通常需要制定字段的长度,它是该字段的最大长度。
ORACLE提供以下几种character 数据类型:
CHAR(<size>) CHAR数据类型是一种有固定长度和最大长度的字符串。
存储在数据类型为CHAR 字段中的数据将以空格的形式补到最大长度。
长度定义在1——2000字节之间。
当你创建一个CHAR型字段,数据库将保证在这个字段中的所有数据是定义长度,如果某个数据比定义长度短,那么将用空格在数据的右边补到定义长度。
如果长度大于定义长度将会触发错误信息。
VARCHAR(<size>) varchar型数据是varchar2型数据的快照。
VARCHAR2(<size>) varchar2数据类型是一种可变长度的、有最大长度的字母数字型数据。
Varchar2类型的字段长度可以达到4000字节,Varchar2类型的变量长度可以达到32676字节。
一个空的varchar2(2000)字段和一个空的varchar2(2)字段所占用的空间是一样的。
NCHAR(<size>) 和 NVARCHAR2(<size>) NCHAR(<size>) 和 NVARCHAR2(<size>)数据类型分别与CHAR(<size>) 和 VARCHAR2(<size>)类型是相同的,只不过它们用来存储NLS(National Language Support)数据。
LONG LONG 数据类型是一个遗留下来的而且在将来不会被支持的数据类型。
它将被LOB(Large Object)数据类型所代替。
比较规则 Varchar2和char数据类型根据尾部的空格有不同的比较规则。
对Char型数据,尾部的空格将被忽略掉,对于Varchar2型数据尾部带空格的数据排序比没有空格的要大些。
比如:
Char 型数据:‘YO’=‘YO ’
Varchar2型数据:‘YO’<’YO’
Numberic 数据类型
Numberic 数据类型用来存储负的和正的整数、分数和浮点型数据,范围在-1*10-103 和
9.999…99*10125之间,有38位的精确度。
标识一个数据超出这个范围时就会出错。
Number(<p>,<s>) Number数据类型存储一个有p位精确度的s位等级的数据。
DATE 数据类型
DATE 数据类型用来存储日期和时间格式的数据。
这种格式可以转换为其他格式的数据去浏览,而且它有专门的函数和属性用来控制和计算。
以下的几种信息都包含在DATE数据类型中:
ØCentury
ØYear
ØMonth
ØDay
ØHour
ØMinute
ØSecond
LOB 数据类型
LOB(Large Object) 数据类型存储非结构化数据,比如二进制文件,图形文件,或其他外部文件。
LOB 可以存储到4G字节大小。
数据可以存储到数据库中也可以存储到外部数据文件中。
LOB 数据的控制通过DBMS_LOB 包实现。
BLOB, NCLOB, 和CLOB 数据可以存储到不同的表空间中,BFILE 存储在服务器上的外部文件中。
LOB数据类型有以下几种:
ØBLOB: 二进制数据
ØCLOB: 字符型数据
ØBFILE: 二进制文件
其他数据类型
ROWID ROWID 数据类型是ORACLE数据表中的一个伪列,它是数据表中每行数据内在的唯一的标识。
oracle中的boolean数据类型仅限于PL/SQL,oracle本身没有默认的提供布尔型的存储方式
在设计数据库表结构时,选择一种高效的策略来存储一个可以在很多编程环境中使用的逻辑布尔值是非常重要的。
(虽然 Oracle 没有 Boolean 数据类型来表示数据库字段,但是在 PL/SQL 中却具有 Boolean 数据类型。
)
任何布尔定义的字段还应该被正确进行约束检查,以确保在插入/更新时输入了有效的值。
Oracle 的数据字典视图中使用的类似布尔的标志,选择‘Y’表示真,‘N’表示假。
然而,要正确地与宿主环境交互,比如与 JDBC、OCCI 和其它编程环境交互,最好选择0表示假,选择1表示真,从而使getBoolean 和setBoolean 能够正确地处理它们。
create table tbool (bool char check (bool in ('N','Y'));
insert into tbool values ('N');
insert into tbool values ('Y');
最常见的设计是模拟很多
我们可以将一个布乐类型定义为 NUMBER(1);然而,在 Oracle 的内部数字格式中,0在长度字节之后占用一个字节,而1在长度字节之后占用两个字节(所以更加高效地方式是将其存储为CHAR)。
即使字符被定义为 CHAR,SQL 也可以转换和验证实际的数字。
深蓝 Studyzy
create table tbool (bool char check (bool in (0,1));
insert into tbool values(0);
insert into tbool values(1);。