oracle远程连接

oracle远程连接
oracle远程连接

1、下载敏捷客户端InstantClient(40M左右,选择适合自己的下载,我的是

instantclient-basic-win32-11.2.0.1.0.zip):

https://www.360docs.net/doc/fb10606573.html,/technetwork/cn/database/features/instant-client/index-0926 99-zhs.html

2、下载安装PLSQL(16M左右):

https://www.360docs.net/doc/fb10606573.html,/soft/4902.htm

3、解压

instantclient-basic-win32-11.2.0.1.0.zip到新建文件夹,如D:/oracleclient/instantclient_11_2

用文本文档创建tnsnames.ora ,内容大致如下:

# TNSNAMES.ORA Network Configuration File: /opt/oracle/product/9204/network/admin/tnsnames.ora

# Generated by Oracle configuration tools. //以上为注释内容,因为我的tnsnames.ora 是直接从服务器上download的

HSSL = //数据库名称

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = 218.108.242.30)(PORT = 1521)) //IP和端口

)

(CONNECT_DATA =

(SERVICE_NAME = hssl) //数据库名称

)

)

用文本文档创建sqlnet.ora ,内容如下:

NAMES.DIRECTORY_PATH= (TNSNAMES)

SQLNET.AUTHENTICATION_SERVICES= (NTS)

到我的电脑、属性、高级、环境变量中添加一个环境变量,变量名为TNS_ADMIN,值为tnsnames.ora文件所在路径,

例如:D:/oracleclient/instantclient_11_2

4、安装完毕PLSQL后,启动,cancel,依次点击Tools->Preferences->Connection: Oracle Home=D:/oracleclient/instantclient_11_2

OCI library=D:/oracleclient/instantclient_11_2/oci.dll

重新启动PLSQL即可进入数据库,初次登陆可能存在中文乱码的问题,解决方法如下:

到我的电脑、属性、高级、环境变量中添加一个环境变量:

变量名:NLS_LANG

变量值:AMERICAN_AMERICA.ZHS16GBK

重新连接,即可正常显示中文。

如果想转换为UTF8字符集,可以赋予“NLS_LANG”为“AMERICAN_AMERICA.UTF8,其他编码同上

远程登录oracle方法

一、Oracle入门练习:远程登陆Oracle数据库 2010-11-24 10:23 124人阅读评论(0) 收藏举报 1. 对于仅仅安装了Oracle客户端的XP电脑,要连接到远程Oracle数据库,则要输入类似以下的命令: C:/> sqlplus /nolog SQL> conn scott/tiger@192.168.0.88:1521/simen:dedicated/simen 格式说明: 用户名/密码@主机名:端口号/服务名:服务类型/实例名 通常,端口号、服务类型、实例名可以省略,简化后如下: SQL> conn scott/tiger@192.168.0.88/simen 这种写法属于轻松连接命名方法(easy connect naming method),这种连接方法不需要配置客户端的$ORACLE_HOME/network/admin/tnsnames.ora文件。所以称之为easy方式 2. 对于安装了NETCA或NET manager的客户机,则可以用本地命名方法(local naming method)来连接远程数据库。命令类似如下: SQL> conn scott/tiger@vm 这里的vm是我们自定义的网络服务名,为了让电脑能解析vm代表什么意思,我们必须配置客户端的$ORACLE_HOME/network/admin/tnsnames.ora文件。该文件的内容大致如下: VM = (DESCRIPTION = (ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.80.80)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = simen) ) ) 可以通过客户端安装的netca或net manager工具来配置该文件。 3. 还有一种命名方法叫目录命名方法(Directory Naming Method),也就是将连接描述符(Connect Descriptors)预先保存在一台符合LDAP的目录服务器上,并由这台目录服务器来解析客户端发出的连接请求中的数据库服务、网络服务名或网络服务别名。 这里讲的连接描述符Connect Descriptors指的是类似以下内容:DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.80.80)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = simen) ) 它应该至少包含PROTOCOL, HOST, PORT, SERVICE_NAME 四个要素。

ORACLE表连接方式的分析与优化-tony

数据仓库环境ORACLE 表连接方式的分析与优化a 摘要:针对在数据仓库环境下,由于超大数据量的处理而产生的效率问题,本文深入分析了ORACLE表的几种连接方式、特点、适用范围,以及对于如何使用和优化做了详细的探讨。 关键字:数据仓库 ORACLE 表连接 一引言 数据仓库技术是目前已知的比较成熟和被广泛采用的解决方案,用于整和电信运营企业内部所有分散的原始业务数据,并通过便捷有效的数据访问手段,可以支持企业内部不同部门,不同需求,不同层次的用户随时获得自己所需的信息。数据仓库系统需要能够及时地追踪和分析大量的历史数据,并能够及时做出分析和预测,因此实时性是一个非常重要的指标。ORACLE由于可靠性、高性能等方面的特点,在电信行业大部分的数据仓库系统中担当了后台数据库的角色。由于电信行业的特点,处理的数据量十分庞大,处理的时间长。尤其是对于大表之间的关联操作,有的大表的记录数达到数亿条,处理时间更是漫长,这成为影响数据库运行效率的主要因素。因此,对于数据库的性能优化相当重要。性能优化是个很大的课题,需要综合考虑,从服务器、磁盘、网络、ORACLE实例、ORACLE SQL等多方面着手。本文着重分析ORACLE SQL优化中对于系统性能影响极大的表连接方式、特点、适用范围,并对如何使用和优化做了详细的探讨。· 二表的连接 表的连接是指在一个SQL语句中通过表与表之间的关联,从一个或多个表检索出相关的数据。连接是通过SQL语句中FROM从句的多个表名,以及WHERE从句里定义的表之间的连接条件来实现的。如果一个SQL语句的关联表超过两个,那么连接的顺序如何呢?ORACLE首先连接其中的两个表,产生一个结果集;然后将产生的结果集与下一个表再进行关联;继续这个过程,直到所有的表都连接完成;最后产生所需的数据。下面都以两个表的连接为例create table user_info(user_name char(10),user_id char(10));

PLSQL安装及配置

PL\SQL Developer的安装和使用一、软件安装 1、准备安装。 安装文件总共有三个,如下图所示: 2、安装PL\SQL Developer的软件。 双击安装文件plsqldev803.exe文件,进入安装阶段: 点击“确定”。 点击“I Agree”。 选择安装路径,点击“Next”。

选择“Create PL\SQL Developer shortcuts”,“Create shortcut on DeskTop”,点击“Next”。 选择“Template files”,“Keyword files”,点击“Finish”。 进入安装过程,会看到安装的进度条,等到安装完成,点击“Close”。

PL\SQL Developer安装完成。 3、安装中文包 双击打开chinese.exe中文包的安装文件,点击“确定”。 选择安装目录,点击右箭头,进入到下一步操作。 进行选项的设置,保持默认即可,点击绿色的钩,进入到安装过程。

软件安装以后,点击灰色的钩,安装完成。 4、注册软件 第一次使用PL\SQL Developer软件是需要注册的,打开”PLSQL注册码.txt”,将相应的内容填入到对应的注册界面,点击“注册”即可。

二、PL\SQL Developer的使用 (在使用PL\SQL Developer之前要保证oracle的远程连接数据库的配置是正确的。 如果配置正确,继续向下看; 如果oracle的连接远程数据库还没有配置,请跳过这节看后面“三、Oracle Net 配置”。) 1、进入系统。双击PL\SQL Developer图标,出现Oracle登陆界面: 填入正确的用户名和密码,选择好对应的数据库,并选择用户的角色,点击“确定”,即可登录成功,进入如下操作界面: 2、PL\SQL操作。下面就最常用的脚本执行操作进行介绍。 1)新建“SQL窗口”。方式有两种:一种是直接点击“文件”→”新建”→”SQL窗口”;

plsql安装和配置连接教程(附一些常用设置)

plsql安装和配置连接教程 总体步骤:先安装oracle client端,然后安装plsql,配置tnsname.ora 一:安装oracle client端 下载地址: 1.加压文件,安装oracle客户端 打开安装包,找到setup.exe,开始安装。报错,具体原因和解决办法和安装oracle服务端方法一样。只是要多修改一个文件,在两个文件里添加同样的内容即可。 解决办法很简单,这是因为版本注册问题,默认oracle 11没有添加win10的注册信息,所以要讲win10的注册信息添加到oracle的配置文件里。打开oracle安装包,找到stage文件夹,找到cvu_prereq.xml文件,用记事本打开可以看到如下内容,在标签最后添加如下红色部分。

上面报错信息修改完成以后,重新setup.ext,下面界面选择“管理员”模式 安装以后在network\ADMIN文件夹中配置tnsnames.ora文件,如图:

如果client文件夹中没有network文件夹,说明安装client时安装类型没选对,这时也可以从instantclient包中,把network文件夹拷入client的目录下。 此时,基础环境已经配置完毕。 二:安装plsqldevlop 安装完毕后,不要输入账号密码先进入工具 点tools—preferences—输入client端的目录地址和oci.dll文件的地址 三:配置系统环境 右击我的电脑—属性—高级系统设置—环境变量 编辑Path,添加client端地址

plsql远程访问数据库 解决ora12541:TNS无监听程序

本机为win7 32位系统,为了学习oracle,装了个vbox虚拟机,再装了个win7虚拟机,内装oracle 11g(win7如果要装10g,要选择vista版本,win版本会安装报错).oracle11g安装完后有报了个错误,当时没注意,现在也忘了什么错了,但是不影响使用.后来想在本机安装plsql来远程连接虚win7上的oracle.查了一些资料,步骤如下: 1.下载plsql,安装. 2.下载Instant Client,点击下载,下载第一个basic就行了,下载完解压缩,以放到主win7 d盘根目录为 例:d:\instantclient_11_2 3.在d:\instantclient_11_2新建tnsnames.ora,用记事本编辑. 4.到虚win7上的oracle安装目录找到…\app\admin\product\11.2.0\dbhome_1\NETWORK\ADMIN\tnsnames.ora,打开,比如数据库实例是orcl,找到如下代码,拷贝到本机d:\instantclient_11_2\tnsnames.ora里 ORCL = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 虚拟机IP)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl) ) ) 5.添加一个环境变量,名为TNS_ADMIN,值为tnsnames.ora文件所在路径d:\instantclient_11_2\tnsnames.ora,plsql通过这个找到orcl连接字符串 6.添加一个环境变量NLS_LANG = SIMPLIFIED CHINESE_CHINA.ZHS16GBK 7.打开PLSQL,不用登陆,工具-首选项-ORACLE-连接: 勾选检查连接 Oracle主目录: d:\instantclient_11_2 OCI库: d:\instantclient_11_2\oci.dll 经过以上几步之后,重启PLSQL,问题来了,报错:ora-12541:TNS:无监听程序. ping是可以ping得通的,虚win7上的监听也开着.经过不懈的努力,多次试验终于解决了: 1.虚拟机网络选择桥接,并在虚拟机内网络连接IPV4设置静态IP IP地址:192.168.1.111 (111可修改成自己的 1-255) 子网掩码:255.255.255.0 默认风头:192.168.1.1 首选DNS服务器:192.168.1.1 修改完记得主win7上 ping 192.168.1.111 ping得通再继续往后.

Oracle -Update 多表关联

一条Update更新语句是不能更新多张表的,除非使用触发器隐含更新。而表的更新操作中,在很多情况下需要在表达式中引用要更新的表以外的数据。我们先来讨论根据其他表数据更新你要更新的表 一、MS SQL Server 多表关联更新 sql server提供了update的from 子句,可以将要更新的表与其它的数据源连接起来。虽然只能对一个表进行更新,但是通过将要更新的表与其它的数据源连接起来,就可以在update的表达式中引用要更新的表以外的其它数据。 一般形式: update A SET 字段1=B表字段表达式, 字段2=B表字段表达式 from B WHERE 逻辑表达式 例如: UPDATE dbo.Table2 SET dbo.Table2.ColB = dbo.Table2.ColB + dbo.Table1.ColB FROM dbo.Table2 INNER JOIN dbo.Table1 ON (dbo.Table2.ColA = dbo.Table1.ColA); 实际更新的操作是在要更新的表上进行的,而不是在from子句所形成的新的结果集上进行的 二、Oracle 多表关联更新 Oracle没有update from语法,可以通过两种实现方式: 1、利用子查询: update A SET 字段1=(select 字段表达 式 from B WHERE ...), 字段2=(select 字段表达式 from B WHERE ...) WHERE 逻辑表达式 UPDATE多个字段两种写法:

写法一: UPDATE table_1 a SET col_x1 = (SELECT b.col_y1, b.col_y2 FROM table_2 b WHERE b.col_n = a.col_m), col_x2= (SELECT b.col_y2 FROM table_2 b WHERE b.col_n = a.col_m) WHERE EXISTS(SELECT * FROM table_2 b WHERE b.col_n = a.col_m) 或 UPDATE table_1 a SET col_x1 = (SELECT b.col_y1, b.col_y2 FROM table_2 b WHERE b.col_n = a.col_m), col_x2= (SELECT b.col_y2 FROM table_2 b WHERE b.col_n = a.col_m) WHERE a.col_m=(SELECT b.col_n FROM table_2 b WHERE b.col_n = a.col_m) 写法二: UPDATE table_1 a SET(col_x1, col_x2)= (SELECT b.col_y1, b.col_y2 FROM table_2 b WHERE b.col_n = a.col_m) WHERE EXISTS(SELECT * FROM table_2 b WHERE b.col_n = a.col_m); 或 UPDATE table_1 a SET(col_x1, col_x2)= (SELECT b.col_y1, b.col_y2 FROM table_2 b WHERE b.col_n = a.col_m) WHERE a.col_m=(SELECT b.col_n FROM table_2 b WHERE b.col_n = a.col_m)注意: 1. 对于子查询的值只能是一个唯一值,不能是多值。 2. 子查询在绝大多数情况下,最后面的where EXISTS子句是重要的,否则将得到错误的结果。且where EXISTS子句可用另一方法代替,如上。最后的子句是对a表被更新记录的限制,如无此句,对于a表中某记录,如在b表中关

PLSQL Developer连虚拟机Linux下的Oracle

一、工作环境 1,本地机器操作系统为windows 7; 2,虚拟机为VM ware; 3,虚拟机操作系统为Linux,系统上已安装Oracle,并有一个实例(orcl) 二、所需工具 1,PL/SQL Developer; 2,VNC-Viewer; 3,XManager Enterprise; 三、具体步骤 1,测试本地机器与虚拟机之间的网络通畅 2,关闭Linux的防火墙 1)在linux的输入:vncserver,启动VNC服务 2)双击VNC Viewer软件,输入Linux的IP地址与端口号,点击“Connect”,输入密码连接Linux;

3)在VNC Viewwe程序中右击,选择“Open Terminal”,打开一个terminal,输入命令:setup,如果不是以root用户登录的Linux,在这里需要输入root用户的password,进入如下界面,选择“Firewall Configuration“,移动光标至“Run Tool”,回车。 4)选择“Disabled”,移动光标至“OK”,回车;

5)至此,Linux的防火墙已关闭; 3,启动数据库的监听(Listener)服务 1)先测试是否有Listener,并查看其状态,在VNC Viewer的terminal中输入:lsntctl status,查看Listener 上图显示Linux上已有Listenter 2)若无Listener,则需新建Listener,在VNC Viewer的terminal中输入:netca,新建一个Listener。如下图所示,然后下一步下一步。

用PLSQL远程连接Oracle数据库

PL/SQL Developer 远程连接Oracle数据库 1、配置服务器tnsnames.ora文件,如果本机上没有安装oracle,可以从安 装了oracle的机上拷贝一个(tnsnames.ora文件)放在指定目录下,因为我已安装oracle,所以直接配置该文件。 # tnsnames.ora Network Configuration File: D:\Oracle11g\product\11.2.0\dbhome_1\network\admin\tnsnames.ora # Generated by Oracle configuration tools. LISTENER_ORCL = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) ORACLR_CONNECTION_DATA = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) ) (CONNECT_DATA = (SID = CLRExtProc) (PRESENTATION = RO) ) ) ORCL = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.25.224)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl) ) ) orcl为远程Oracle数据库的实例名,IP地址和端口也要配置正确。 2、配置完成后,Oracle客户端应该可以连接到远程Oracle 数据库上。

Oracle+表连接方式(内连接-外连接-自连接)+详解

Oracle 表之间的连接分为三种: 1. 内连接(自然连接) 2. 外连接 (1)左外连接(左边的表不加限制) (2)右外连接(右边的表不加限制) (3)全外连接(左右两表都不加限制) 3. 自连接(同一张表内的连接) SQL的标准语法: select table1.column,table2.column from table1 [inner | left | right | full ] join table2 on table1.column1 = table2.column2; inner join 表示内连接; left join表示左外连接; right join表示右外连接; full join表示完全外连接; on子句用于指定连接条件。 注意: 如果使用from子句指定内、外连接,则必须要使用on子句指定连接条件; 如果使用(+)操作符指定外连接,则必须使用where子句指定连接条件。 一.内连接(Inner Join/Join) 1.1 Inner Join Inner join逻辑运算符返回满足第一个(顶端)输入与第二个(底端)输入联接的每一行。这个和用select查询多表是一样的效果,所以内连接用的很少。 还有一点要说明的就是Join 默认就是inner join。所以我们在写内连接的时候可以省略inner 这个关键字。1.2 下面举例来说明内连接: 1.2.1 先创建2张测试表并插入数据: SQL> select * from dave; ID NAME ---------- ---------- 1 dave 2 bl 1 bl 2 dave SQL> select * from bl; ID NAME ---------- ---------- 1 dave 2 bl 1.2.3 用内链接进行查询: SQL> Select a.id,https://www.360docs.net/doc/fb10606573.html,,https://www.360docs.net/doc/fb10606573.html, from dave a inner join bl b on a.id=b.id; -- 标准写法 ID NAME NAME ---------- ---------- ---------- 1 dave dave 2 bl bl 1 bl dave 2 dave bl

Oracle数据库远程连接设置的四种方法

Oracle数据库远程连接设置的四种方法 Oracle数据库的远程连接可以通过多种方式来实现,本文我们主要介绍四种远程连接的方法和注意事项,并通过示例来说明,接下来我们就开始介绍。 第一种情况: 若oracle服务器装在本机上,那就不多说了,连接只是用户名和密码的问题了。不过要注意环境变 量%ORACLE_HOME%/network/admin/是否设置。 第二种情况: 本机未安装oracle服务器,也未安装oracle客户端。但是安装了pl sql development、toad sql development、sql navigator等管理数据库的工具。在虚拟机或者另一台电脑上安装了oracle服务器,也就是虚拟机或者另一台电脑此时作为服务器。 这种情况下,本人以pl sql development远程连接ORACLE服务端数据库为例: 1、在安装oracle服务器的机器上搜索下列文件: ?oci.dll ?ocijdbc10.dll ?ociw32.dll ?orannzsbb10.dll ?oraocci10.dll ?oraociei10.dll ?sqlnet.ora ?tnsnames.ora ?classes12.jar ?ojdbc14.jar 把这些找到的文件复制放到一个文件夹,如 oraclient,将此文件夹复制到客户端机器上。如放置路径为 D:oraclient。 2、配置tnsnames.ora,修改其中的数据库连接串。 1.oracledata = 2. 3.(DESCRIPTION = 4. 5.(ADDRESS_LIST = 6. 7.(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.58)(PORT = 1521)) 8. 9.(CONNECT_DATA =

oracle两表查询练习附答案

Sutdent表的定义 字段名字段描述数据类型主键外键非空唯一自增Id学号INT(10)是否是是是Name姓名VARCHAR(20)否否是否否Sex性别VARCHAR(4)否否否否否Birth出生年份YEAR否否否否否Department院系VARCHAR(20)否否是否否Address家庭住址VARCHAR(50)否否否否否 Score表的定义 字段名字段描述数据类型主键外键非空唯一自增Id编号INT(10)是否是是是Stu_id学号INT(10)否否是否否C_name课程名VARCHAR(20)否否否否否Grade分数INT(10)否否否否否 1.创建student和score表 create table student( id number(10)not null primary key, name varchar2(20)not null, sex varchar2(4), birth number, department varchar2(20)not null, address varchar2(50) ); create table score( id number(10)not null primary key, stu_id number(10)not null, c_name varchar2(20), grade number(10) ); 2.为student表和score表增加记录 向student表插入记录的INSERT语句如下: Insert into student values(100101,'张三','男',23,'计算机系','北京市朝阳区'); Insert into student values(100102,'李四','男',21,'英语系','北京市海淀区'); Insert into student values(100103,'王五','女',19,'建工系','北京市昌平区'); Insert into student values(100104,'孙六','女',21,'化学系','北京市苏州桥'); Insert into student values(100105,'齐七','男',23,'英语系','北京市海淀区'); 向score表插入记录的INSERT语句如下: Insert into score values(001,100101,'计算机基础',89); Insert into score values(002,100101,'英语',93); Insert into score values(003,100101,'数学',87);

oracle远程访问的安全问题

Oracle远程访问的安全问题 问题来源: 1.客户端错误操作。上层对数据库的损坏性操作。 2.来自网络中的恶意程序的运行。 解决方案 1.通过远程oracle数据库本身的安全策略可以解决问题(1). Oracle提供的主要安全性措施如下: 身份认证功能(Authentication):识别访问个体的身份 数据访问的机密性(Confidentialty):保证敏感数据访问的机密性。 数据完整性(Integrity):保证数据不被篡改。 授权能力(Authorization):保证被授权用户对数据的查询和修改能力。 访问控制(Access Control):确定对指定数据的访问能力。 审计能力(Auditing):提供监测用户行为的能力。 私有性(Privacy):提供对敏感数据访问的私密性。 高可用性(Availability):保证数据和系统提供不间断服务的能力。 代理管理能力(Delegated Administration):提供对用户帐号的集中管理功能。 用户权限控制(Privilege) Oracle通过角色(Role),权限(Privilege)等的一系列授予(Grant)和回收(R evoke)操作可以有效的进行用户的权限控制。 通过权限控制我们可以实现: 某个特定用户只能读取而不能修改另一个用户的表数据。 某个特定用户只能运行Oracle数据库系统的几个存储过程或者函数。 某个特定用户自己能够拥有修改某些数据的权力,但是却无法给其它不拥有这个权限的用户授予修改该数据的权力。 某个特定用户可以读取数据但是无法创建新的表空间。 虚拟专用数据库(VPD) 虚拟专用数据库(VPD) 也称为细粒度访问控制,它提供强大的行级安全功能。它是在Oracle8i 中推出的,已经受到广泛的欢迎。 VPD 的工作方法是,通过透明地更改对数据的请求,基于一系列定义的标准向用户提供表的局部视图。在运行时,所有查询都附加了谓词,以便筛选出准许用户看到的行。 也就是通过VPD的设置,我们可以做到行级安全性控制,特定的用户即使对一张表有读取权限,那么也只能看到符合自身权限的记录。 注意,在Oracle10g版本中,VPD得到增强,已经可以实现字段级的安全性控制了。实例及搭建步骤参看:利用VPD细粒度访问策略实现行级安全性Step By Step

linux远程连接oracle数据库

远程连接Oracle数据库 1. 测试项目 a. 通过Java程序远程连接Oracle 10g数据库 b. 通过客户端远程连接Oracle 10g 数据库 2. 测试环境 服务器端:RHEL 5.4 (安装在VMWare 6.5上) 数据库:Oracle 10g (安装在RHEL 5.4上,具体安装方法请Baidu或Google) 客户端:Windows 7 (已配置好Java环境) 客户端软件:PL/SQL Developer 7.1.5 3. IP的设置 a. 确保客户端和服务器端能ping通, 本服务器端的IP:192.168.0.101 ,如下图: 本客户端的IP:192.168.0.105,如下图:

设置完IP后,ping服务器通过,如下图: 4. 配置服务器端 a. 配置oracle的监听,文件listener.ora 和tnsnames.ora。所在目录为$ORCLE_HOME/network/admin/ 本服务器的listener.ora配置,添加如下红框内容,根据自己的目录和SID做相应更改。

本服务器的tnsnames.ora配置: 到此,服务器端已经配置完成了。在远程连接的时候最好先把防火墙禁用了,在服务器端可以用以下命令查看

5. 客户端 服务器端配置好以后,在客户端查看是否监听,如下图: 6. Java程序远程连接oracle 连接oracle的java代码如下: 运行的结果如下:

7. 客户端远程连接oracle 要通过客户端连接到oracle,也需要在本地配置监听,找到自己的客户端配置文件tnsnames.ora,添加如下内容: 连接测试如下: 到此,已全部测试完成,成功。祝君好运!

SQL、Oracle多表连接查询(内,外,交叉连接)

多表连接查询(内,外,交叉连接)连接查询实际上是通过各个表之间共同列的关联性来查询数据的,它是关系数据库查询最主要的特征. select 表1.字段名1,表2.字段名2,... from 表1,表2 where 连接条件 SQL-92标准所定义的FROM子句的连接语法格式为: FROM 表名join_type表名 [ON (连接条件)] 连接操作中的ON (连接条件) 子句指出连接条件,它由被连接表中的列和比较运算符、逻辑运算符等构成。 连接查询分类: 1.自连接查询,对同一个表进行连接操作(可以理解为两个不同表的内连接,有时可与嵌套查询等价) 2.内连接查询,<又分为:自然连接、等值连接、不等值连接三种> 3.外连接查询,<又分为:左外连接、右外连接、全外连接三种> 4.交叉连接查询,也作无条件查询。 5.联合查询 一.自连接查询: 一个表自己与自己建立连接称为自连接或自身连接。 进行自连接就如同两个分开的表一样,可以把一个表的某一行与同一表中的另一行连接起来。例: 查询选学“101”课程的成绩高于“9505201”号学生成绩的所有学生记录, 并按成绩从高到低排列。 select x.* from sclassx,sclass y where https://www.360docs.net/doc/fb10606573.html,o=''101'' and x.degree>y.degree and y.sno=''9505201'' and https://www.360docs.net/doc/fb10606573.html,o=''101'' order by x.degreedesc 二. 内连接查询 内连接(INNER JOIN)使用比较运算符进行表间某(些)列数据的比较操作,并列出这些表中与连接条件相匹配的数据行。根据所使用的比较方式不同,内连接又分为等值连接、自然连接和不等连接三种。 1、等值连接: 所谓等值连接,是指表之间通过“等于”关系连接起来,产生一个临时表, 然后对该临时表进行处理后生成最终结果。其查询结果中列出被连接表中的所有列,包括其中的重复列。 SELECT * FROM authors AS a INNER JOIN publishers AS p ON a.city=p.city

PLSQL Developer连接本地Oracle11g 64位数据库无链接为

1.登录PL/SQL Developer 这里省略Oracle数据库和PL/SQL Developer的安装步骤,注意在安装PL/SQL Developer软件时,不要安装在Program Files (x86)目录下,不然无法启动PL/SQL Developer。 奇怪这里为什么选择不到数据库的TNS呢?我是先安装数据库,再安装 PL/SQL Developer。按理说安装PL/SQL Developer时,就已经识别到了Oracle Home 和OCI Libaray了。管它呢?先以非登录方式登录PL/SQL Developer,设置Oracle Home和OCI Libaray。 在Oracle Home这选项下,没有自动识别到Oracle Home目录,于是手动指定Oracle Home路径。

点击“确定”,退出PL/SQL Developer,再次登录。 还是选择不到数据库TNS,尝试无数据库登录,看看报什么错误。

终于找到问题的关键点了,安装的PL/SQL Deleloper只能识别32的oci.dll。看来是要安个64位的PL/SQL Deleloper,于是在网上搜索PL/SQL Deleloper 64位版本。然而发现PL/SQL Deleloper不区分64位和32位。那看来只能从oci.dll入手了。根据上面的报错信息来看,似乎只要安装一个32位版本的Oracle Client。 2.安装oracle Clinet 首先到Oracle官网上去下载一个Oracle 11g Client,不过需要先申请一个Oracle 帐号,才能下载。 目前下载地址: https://www.360docs.net/doc/fb10606573.html,/technetwork/database/features/instant-client/index-0 97480.html 这个一个绿色版的Oracle Client,因此只要需要解压了,就可以是。将下载的Oracle Client文件instantclient-basic-win32-11.2.0.1.0.zip解压到C盘(注意啦!不能下64位的)。然后在解压后的C:\instantclient_11_2目录下新建NETWORK\ADMIN目录,在ADMIN目录下新建tnsnames.ora文件,添加数据库TNS。

Oracle sqlplus远程连接数据库

Oracle sqlplus远程连接数据库 sqlplus username/password@yunSID_192.168.1.5 公司使用linux开发机进行程序开发时,由于开发用Oracle数据库是由日方提供,所以经常使用sqlplus连接到远程数据库上进行开发,例如: sqlplus username/password@servicename 于是想,用我的两台电脑双机互联试一试,也玩个“远程连接”。实验如下: 首先在我的台式机上安装了Oracle9i的数据库管理系统,并建立了一个数据库实例:xy 然后为该实例新增了一个用户,用户名和密码都是kxy01。启动实例xy后,在台式机上,直接在cmd环境键入:sqlplus kxy01/kxy01@xy就可以连接上数据库,呵呵,想来本地连接都是不费吹灰之力就行的。 之后,在我的笔记本上安装了Oracle9i的Client工具。然后试着直接用上述命令访问,显然是不行的,系统返回无法解析服务名的错误信息。 要实现连接到远程数据库,先了解一下相关知识吧,查了一下书。原来,Oracle 数据库的远程连接是通过Oracle Net实现的。在服务器和客户端都必须运行有配置正确的Oracle Net才可以。不管使用的配置和配置工具如何,都应该告诉Oracle Net怎样找到远程数据库。 要怎么配置Oracle Net呢。点开Oracle的开始菜单,寻找相关的工具,发现一个名为: Net Configuration Assitant的工具,应该就是它了。启动之: Net Configuration Assitant共提供了4个配置功能: 监听程序配置, 命名方法配置, 本地网络服务名配置 目录使用配置。 要从远程位置连接Oracle数据库,必须配置Oracle网络监听程序。Net Configuration Assitant可以用于此项配置工作,启动后选择监听程序配置,一路下一步即可。之后点开命名方法配置,系统已经默认提供了三种,其他两种也不太认识,干脆不改了,直接点后退,回到主菜单。 主菜单中,第三项是本地网络服务名配置。要通过网络访问Oracle数据库或其他服务,要使用网络服务名,该项配置允许使用由本地命名解析的网络服务名。而第四项为目录使用配置,点开一看,居然要选择目录服务器,我这一共就两台电脑,要什么目录服务,看来第四项不适合本实验了,显然,关键配置就在第三项:本地网络服务名配置。 将其点开,选择“添加”网络服务名操作,然后会询问你希望访问何种版本的Oracle 数据库服务。按照常理,我装的是Oracle9i自然应该选择第一个(Oracle8i或更高版本数据库服务),可经过实践证明,只有选择第二个(Oracle8i发行版8.0数据库或服务)才能正常实现远程连接,不明其中原因,也就只有选第二个拉。 然后输入我的数据库实例SID:xy 然后选择网络协议,双机互联应该选择TCP吧,再然后填写数据库所在的主机名:kxyhome。端口号采用默认的1521。 点击下一步,进行数据库连接的测试,测试成功后进行网络服务名的填写,这个

Oracle 表三种连接方式使用介绍(sql优化)

1. NESTED LOOP 对于被连接的数据子集较小的情况,nested loop连接是个较好的选择。nested loop就是扫描一个表,每读到一条记录,就根据索引去另一个表里面查找,没有索引一般就不会是nested loops。一般在nested loop中,驱动表满足条件结果集不大,被驱动表的连接字段要有索引,这样就走nstedloop。如果驱动表返回记录太多,就不适合nested loops了。如果连接字段没有索引,则适合走hash join,因为不需要索引。 可用ordered提示来改变CBO默认的驱动表,可用USE_NL(table_name1 table_name2)提示来强制使用nested loop。 要点如下: 1)对于被连接的数据子集较小的情况,嵌套循环连接是个较好的选择 2)使用USE_NL(table_name1 table_name2)可是强制CBO 执行嵌套循环连接 3)Nested loop一般用在连接的表中有索引,并且索引选择性较好的时候 4)OIN的顺序很重要,驱动表的记录集一定要小,返回结果集的响应时间是最快的。 5)Nested loops 工作方式是从一张表中读取数据,访问另一张表(通常是索引)来做匹配,nested loops适用的场合是当一个关联表比较小的时候,效率会更高。 2. HASH JOIN hash join是CBO 做大数据集连接时的常用方式。优化器扫描小表(数据源),利用连接键(也就是根据连接字段计算hash 值)在内存中建立hash表,然后扫描大表,每读到一条记录就探测hash表一次,找出与hash表匹配的行。 当小表可以全部放入内存中,其成本接近全表扫描两个表的成本之和。如果表很大不能完全放入内存,这时优化器会将它分割成若干不同的分区,不能放入内存的部分就把该分区写入磁盘的临时段,此时要有较大的临时段从而尽量提高I/O 的性能。临时段中的分区都需要换进内存做hash join。这时候成本接近于全表扫描小表+分区数*全表扫描大表的代价和。 至于两个表都进行分区,其好处是可以使用parallel query,就是多个进程同时对不同的分区进行join,然后再合并。但是复杂。 使用hash join时,HASH_AREA_SIZE初始化参数必须足够的大,如果是9i,Oracle建议使用SQL工作区自动管理,设置WORKAREA_SIZE_POLICY 为AUTO,然后调整PGA_AGGREGATE_TARGET即可。 以下条件下hash join可能有优势: 1)两个巨大的表之间的连接。 2)在一个巨大的表和一个小表之间的连接。 要点如下: 1)散列连接是CBO 做大数据集连接时的常用方式. 2)也可以用USE_HASH(table_name1 table_name2)提示来强制使用散列连接 3)Hash join在两个表的数据量差别很大的时候. 4)Hash join的工作方式是将一个表(通常是小一点的那个表)做hash运算并存储到hash列表中,从另一个表中抽取记录,做hash运算,到hash 列表中找到相应的值,做匹配。 可用ordered提示来改变CBO默认的驱动表,可用USE_HASH(table_name1 table_name2)提示来强制使用hash join。 3. SORT MERGE JOIN a)对连接的每个表做table access full;

ORACLE 多表关联 UPDATE 语句

为了方便起见,建立了以下简单模型,和构造了部分测试数据: 在某个业务受理子系统BSS中, SQL 代码 1.--客户资料表 2.create table customers 3.( 4.customer_id number(8) not null, -- 客户标示 5.city_name varchar2(10) not null, -- 所在城市 6.customer_type char(2) not null, -- 客户类型 7.... 8.) 9.create unique index PK_customers on customers (customer_id) 由于某些原因,客户所在城市这个信息并不什么准确,但是在 客户服务部的CRM子系统中,通过主动服务获取了部分客户20%的所在城市等准确信息,于是你将该部分信息提取至一张临时表中: SQL 代码

1) 最简单的形式 SQL 代码 2) 两表(多表)关联update -- 仅在where字句中的连接SQL 代码 3) 两表(多表)关联update -- 被修改值由另一个表运算而来SQL 代码

注意在这个语句中, =(select b.city_name,b.customer_type from tmp_cust_city b where b.customer_id=a.customer_id ) 与 (select 1 from tmp_cust_city b where b.customer_id=a.customer_id) 是两个独立的子查询,查看执行计划可知,对b表/索引扫描了2篇;如果舍弃where条件,则默认对A表进行全表 更新,但由于 SQL 代码

相关文档
最新文档