substr
好instr
两个的用法。
实现你说的方法可以:
select
substr('21806182',
1,length('21806182')
-
instr('',
reverse('21806182')))
from
(select
from
t_base_ipaddressinfo
where
'21806182'
between
startip
and
endip)
t
where
startip
=
substr('21806182',
1,length('21806182')
-
instr('',
reverse('21806182')))
||
substr(startip,
instr('',
reverse(startip)))步骤1:打开企业管理器,如下。
步骤2:选择数据库,安全性,点击新建链接服务器。
步骤3:选择链接服务器属性,常规,输入名称:TEST,选择ORACLE数据库提供程序,输入名称、数据源。
步骤4:进行安全性设置。本地登录,选择SQLServer数据库登录用户,远程登录用户和密码,输入远程连接数据库的用户和密码,选择用此安全上下文进行,输入远程登录用户和密码。
5
步骤5:点击TEST链接服务器下的表,我们可以访问ORACLE数据库的表了。
注意:产品名称要和所链接的服务器相对应,使用ORACLE数据库就要输入ORACLE,使用SQLServer就输入SQLServer。
网络配置文件默认的目录在$ORACLE_HOME/neork/admin 目录下
sqlnet ora
sqlnet ora文件决定找数据库服务器别名的方式
参数SQLNET AUTHENTICATION_SERVICES= (NONE NTS)表明用户连接Oracle服务器时使用哪种验证方式
NONE表示Oracle身份验证
NTS表示 *** 作系统身份验证
两种方式可以并用
ORA_DBA组中的域用户和本地用户不需要Oracle用户名和密码就可以登录Oracle
而且该组的用户登录数据库后都具有SYSDBA权限(多个实 例时 可以建立类似这样的组ORA_SID_DBA 其中SID指实例名
同理:ORA_OPER组中的成员具有SYSOPER角色的权限
登录方式 sqlplus / as sysdba
或者sqlplus nolog 然后SQL>connect / as sysdba
NAMES DEFAULT_DOMAIN = WORLD
NAMES DIRECTORY_PATH = (TNSNAMES ONAMES HOSTNAME)
表明解析客户端连接时所用的主机字符串的方式
TNSNAMES表示采用TNSNAMES ORA文件来解析
ONAMES表示使用自己的名称服务器(Oracle Name Server)来解析 目前Oracle建议使用轻量目录访问协议LDAP来取代ONAMES
HOSTNAME表示使用host文件 DNS NIS等来解析
如果你的ORACLE客户端和服务器默认的域名不一样 需要用#号注释第一行
#NAMES DEFAULT_DOMAIN = WORLD
使它不起作用
NAMES DIRECTORY_PATH指定找服务器别名的顺序 (本地的tnsnames ora文件 命名服务器 主机名方式)
服务器的sqlnet ora里可以设置检查客户端是否alive的时间间隔
sqlnet expire_time =
也可以设置环境变量TNS_ADMIN指向你想用的sqlnet ora和tnsnames ora目录
例如
TNS_ADMIN=/home/oracle/config/ ;export TNS_ADMIN
tnsnames ora
写数据库服务器别名的详细内容
有以下几种写法:
# 一般的写法
APPDB =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = )(PORT = ))
)
(CONNECT_DATA =
(SERVICE_NAME = appdb)
)
)
# 明确标明用dedicated方式连接数据库
APPD=
(DESCRIPTION=
(ADDRESS=(PROTOCOL=TCP)(HOST= )(PORT= ))
(CONNECT_DATA=
(SERVICE_NAME=appdb)
(SERVER=DEDICATED)))
# 对多个listener端口做均衡负载方式连接数据库
APPS =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = )(PORT = ))
(ADDRESS = (PROTOCOL = TCP)(HOST = )(PORT = ))
)
(CONNECT_DATA =
(SERVICE_NAME = appdb)
)
)
# 注意 如果数据库服务器用MTS 客户端程序需要用database link时最好明确指明客户端用dedicated直连方式
# 不然会遇到很多跟分布式环境有关的ORACLE BUG
lishixinzhi/Article/program/Oracle/201311/17314服务器端
\network\admin\listenerora
修改address的host即可。
客户端
\network\admin\tnsnamesora
修改address的host即可。
监听是服务端的,负责监听网络上发来请求,然后响应。
也可用net
manager直接修改配置。
服务器是unix的,我就不知道文件地址了,反正都是同样的修改。
修改后重新启动listener。select
sys_context('userenv','ip_address')
from
dual;
如果是登陆本机数据库,只能返回127001,呵呵应该是DBMS的服务名把,因为有允许多重驻留的,有多个服务名\x0d\1查看oracle的安装目录,\x0d\方法是查看注册表:\x0d\如:HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\ORACLE_HOME REG_SZ E:\ORACLE\ORA92 \x0d\得到了oracle的安装目录\x0d\一般来讲,如果服务器在安装时采用的是默认值那么这个值是:D:\ORACLE\ORA92\x0d\\x0d\2找到tnsnamesora文件\x0d\在根目录下面找到\network\ADMIN\tnsnamesora 文件,并打开\x0d\\x0d\3仔细查看里面的tnsnamesora 配置\x0d\例如\x0d\# TNSNAMESORA Network Configuration File: d:\oracle\ora92\network\admin\tnsnamesora\x0d\# Generated by Oracle configuration tools\x0d\WZZ=\x0d\(DESCRIPTION =\x0d\ (ADDRESS_LIST =\x0d\ (ADDRESS = (PROTOCOL = TCP)(HOST = wzz)(PORT = 1521))\x0d\ )\x0d\ (CONNECT_DATA =\x0d\ (SERVER = DEDICATED)\x0d\ (SERVICE_NAME = WZZ)\x0d\ )\x0d\)\x0d\其中的service_name就是服务名,例如对如上面的文件 ,服务名就是WZZ\x0d\\x0d\附 C#获取oracle服务器名 :\x0d\\x0d\ #region 从注册表中读取安装主目录的值\x0d\ /// \x0d\ /// 从注册表中读取安装主目录的值\x0d\ /// \x0d\ /// \x0d\ /// \x0d\ public static string ReadHomeDirectory(string setupKey)\x0d\ {\x0d\ RegistryKey readKey;\x0d\\x0d\ try\x0d\ {\x0d\ readKey = RegistryLocalMachineOpenSubKey\x0d\ ("Software\\ORACLE", false);\x0d\\x0d\ foreach (string name in readKeyGetValueNames())\x0d\ {\x0d\ if (name == setupKey)\x0d\ {\x0d\ return readKeyGetValue(name)ToString();\x0d\ }\x0d\ }\x0d\\x0d\ return null;\x0d\ }\x0d\ catch\x0d\ {\x0d\ return null;\x0d\ }\x0d\ }\x0d\ #endregion
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)