oracle语句

本文介绍了SQL基本操作如SELECT、INSERT、UPDATE语句的使用,并深入解析了Oracle TNS配置的重要性和具体步骤,包括TNS配置文件的组成、监听器配置、客户端配置等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

select语句
select * from table order by column desc;
select * from table where column = ‘abc’;
select * from table where column in( ‘abc’,’def’,’ghi’);
select * from table where column between 1 and 2;
select * from table where column like ‘%abc%’;
select top 10 * from table order by column desc;
select top 10 * from table where column = ‘abc’;
select * from b_train_dict where s_cartype = ‘HXD1’ order by s_carno;
insert语句
strSql.Format(“insert into b_train_dict (s_cartype,s_carno,d_1cyctime) values(’%s’,’%s’,’%s’)”,strType,strNum,strTime);

update语句
update ff_op_train set trainset_id = ‘SS46185’ where pass_time = to_date(‘2015-9-3 12:53:38’,’yyyy-mm-dd hh24:mi:ss’);
update ff_op_vehicle set cehicle_id = ‘6185B-6185A’ where train_serial = ‘aaa’ and vehicle_order = 1;
嵌套查询
select * from ff_op_train where train_serial in (select train_serial from ff_op_vehicle where vehicle_id = ‘6185B-6185A’);
VC语句:
CString str,strCarOrder;
strSql.Format(“insert into trainnum_dict values(‘temp’,’%s’,’%s’,‘temp’,‘temp’)”,strNum,strTime);
if(pRs->Open((LPCTSTR)strSql))
CString str,strCarOrder;
strSql = “update ff_op_train set trainset_id=’” + strTrainSetID + “’” +
" where TRAIN_SERIAL=’" + strTrainSerial + “’”;
if(pRs->Open((LPCTSTR)strSql))

oracle 删除字段为空记录
delete from b_train_dict where s_cartype is null;

TNS简要介绍与应用
Oracle中TNS的完整定义:transparence Network Substrate透明网络底层,监听服务是它重要的一部分,不是全部,不要把TNS当作只是监听器。
TNS是Oracle Net的一部分,专门用来管理和配置Oracle数据库和客户端连接的一个工具,在大多数情况下客户端和数据库要通讯,必须配置TNS,当然在少数情况下,不用配置TNS也可以连接Oracle数据库,比如通过JDBC。如果通过TNS连接Oracle,那么客户端必须安装Oracle client程序。
Oracle当中,如果想访问某个服务器,必须要设置TNS,它不像SQL SERVER那样在客户端自动列举出在局域网内所有的在线服务器,只需在客户端选择需要的服务器,然后使用帐号与密码登录即可。而Oracle不能自动列举出网内的服务器,需要通过读取TNS配置文件才能列出经过配置的服务器名。
配置文件名一般为:tnsnames.ora,默认路径:%ORACLE_HOME%\network\admin\tnsnames.ora

上图中的CGDB和STDCG就是对应的TNS,HOST是指向数据库服务器的IP,当然局域网内用计算机名称也是可以的。通过客户端Net Manager创建一个连接到数据库服务器的连接服务时,实际上就是在tnsnames.ora文件中增加了一个TNS的内容。
TNS的详细配置文件
TNS的配置文件包括服务器端和客户端两部分。服务器端有listener.ora、sqlnet.ora和tnsnames.ora,如果通过OCM(Oracle Connection Manage)和域名服务管理客户端连接,服务器端可能还包括cman.ora等文件;客户端有tnsnames.ora,sqlnet.ora。Oracle所有的TNS配置文件的默认路径:%ORACLE_HOME%\network\admin
listener.ora:监听器配置文件,成功启动后是驻留在服务器端的一个服务。监听器是用来侦听客户端的连接请求以及建立客户端和服务器端连接通道的一个服务程序。默认情况下Oracle在1521端口上侦听客户端连接请求。
sqlnet.ora:用来管理和约束或限制tns连接的配置,通过在该文件中设置一些参数,可以管理TNS连接。根据参数作用的不同,需要分别在服务器和客户端配置.。
tnsnames.ora:配置客户端到服务器端的连接服务,包括客户端要连接到的服务器和数据库的配置信息。
TNS配置
可以通过Oracle Net Configuretion Assitant配置TNS,也可以手动配置。首先在Oracle服务器端安装完成之后,应该先着手配置LISTENER,LISTENER是进行Oracle通讯的首要组件,紧接着在客户端安装Oracle client,同时配置tnsnames.ora文件。
首先监听器包括两个部分:Oracle要监听的地址、端口、通讯协议;Oracle要监听的数据库实例,非RAC环境下,LISTENER只能监听本服务器的地址和实例,RAC环境下,LISTENER还可以监听远程服务器。每个数据库最少要配置一个监听器。(注:RAC环境,指的是Oracle服务器集群配置的环境)

LISTENER部分配置了Oracle要监听的地址和端口信息;该文件中还会包括SID_LIST_LISTENER部分,这部分配置了Oracle需要监听的实例。(注:在上述截图中并没有SID_LIST_LISTENER这一部分,这是因为Oracle自9i版本引入了动态监听服务注册,在数据库启动时,会自动注册当前数据库实例到监听列表,所以无需配置SID_LIST_LISTENER部分了)
HOST参数可以是Oracle服务器主机名称,也可以是相应的IP地址。在一个多IP的服务器上可以配置listener同时监听多个地址,比如下面的配置:LISTENER= (DESCRIPTION= (ADDRESS_LIST= (ADDRESS=(PROTOCOL=tcp)(HOST=192.168.0.11)(PORT=1521)) (ADDRESS=(PROTOCOL=tcp)(HOST=192.168.2.11) (PORT=1521))) ),或者可以配置多个监听器,分别监听不同的IP地址。
一般说的TNS配置其实就是对tnsnames.ora文件的配置,tnsnames.ora有客户端的配置,也有服务器端的配置。客户端和服务器端配置的区别是因为服务器端的配置跟LISTENER的配置相关。下面是一个简单的配置示例:

tnsnames.ora也包括两部分,ADDRESS_LIST 部分包含了Oracle数据库服务器的监听地址信息,也就是要告诉TNS数据库可通过这个地址和CLIENT进行通讯;CONNECT_DATA 定义了CLIENT要连接的数据库,以及数据库的连接方式,(专用或共享)。
在一个多IP环境中,TNS也可以配置多个远程IP地址:CGDB = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.55)(PORT = 1521)) (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.56)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = CGDB) (SERVER = DEDICATED) ) )
sqlnet.ora是个很重要的配置,它可以控制和管理Oracle连接的属性,根据参数作用的不同决定在客户端配置还是在server端配置。sqlnet.ora的配置是全局性的,也就说sqlnet.ora的配置是对所有的连接起作用,如果想对某个特殊的连接或服务进行约束或限制,可以 在TNS配置相应参数。

安装过ORACLE的都知道,oracle安装时需要进行配置,这个配置可以在客户端的企业管理器一步一步进行,或者直接拷贝一个tnsnames.ora文件到安装目录下(c:\app\Administrator\product\11.2.0\client_1\network\admin)。
为什么要配置这个文件?这个文件的作用又是什么?
SQL SERVER你使用客户端的时候,会自动搜过局域网内的在线的数据库,你就可以清楚知道哪台可以连。但ORACLE不同,不能像SQL SERVER列出来。ORACLE的客户机为了和服务器连接,必须先和服务器上的监听进程联络。ORACLE通过tnsnames.ora文件中的连接描述符来说明连接信息。一般tnsnames.ora 是建立在客户机上的。如果是客户机/服务器结构,整个网络上只有一台机器安装了ORACLE数据库服务器,那么只需在每个要访问ORACLE服务器的客户机上定义该文件,在服务器上无需定义。但是,如果网络上有多台机器均安装了ORACLE数据库服务器,并且服务器之间有数据共享的要求,那么在每台服务器上都必须定义该文件。tnsnames.ora文件缺省放在/ORACLE_HOME/ product/8.1.7/network/admin目录下。
tnsnames.ora是配置连接字符串的,会配置你连的IP,端口,数据库实例等信息记录客户端访问数据库的本地配置。下面是tnsnames.ora的文件样式:
分割线___
ORA817 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = sun62)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = ora817.huawei.com)
)
)
INST1_HTTP =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = sun62)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = SHARED)
(SERVICE_NAME = ora817.huawei.com)
(PRESENTATION = http://admin)
)
)
EXTPROC_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
)
(CONNECT_DATA =
(SID = PLSExtProc)
(PRESENTATION = RO)
)
)
分割线______
字段含义如下:
ADDRESS_LIST 表示该客户机要经由多种协议与一台或多台服务器连接。在该样式文件中就表示该客户机要用TCP/IP协议来和服务器相连
PROTOCOL 指明要连接使用的协议
SERVICE_NAME “SERVICE_NAME”就是“GlobalDatabase Name”,ORACLE8i数据库使用“GlobalDatabaseName”来唯一标识自己,通常的格式为“name.domain”,此处的值为“ora817.huawei.com
HOST 是TCP/IP协议使用的服务器IP地址
PORT 是TCP/IP使用的端口地址
SID 指定要连接的服务器上ORACLE数据库的ORACLE_SID
SERVER=DEDICATED 表示用专用服务器连接ORACLE数据库。
下面是一个tnsnames.ora文件内容举例:
ora = //连接描述符名:ora
(description = //描述
(address = //网络地址之一
(protocol = tcp) //网络协议(tcp表示TCP/IP协议)
(host = 129.9.114.22) //服务器IP地址:129.9.114.22
(port = 1251) //服务器端口号:1251
)
(connect_data = //连接数据
(sid = ora7) //数据库标识名:ora7
(SERVER = DEDICATED)
(SERVICE_NAME = ora9i)
)
)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码猿杂谈

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值