oracle数据库左右连接问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle数据库左右连接问题相关的知识,希望对你有一定的参考价值。

select * from budget_dsalemonthm m left join bas_region r on r.region_code=m.dept_id
其中,r.region_code为varchar2类型,M.dept_id为number类型,这样做连接是否会出现问题?

参考技术A 没有任何问题,但会发生数据类型转换,数据类型转换会导致优化器不使用索引而全表扫描 。但不一定全表扫描就是效率不高,要结合数据量和sql执行计划(路径)来决定。关键是以最小的IO,最短的路径,最少的时间获得准确的结果。 参考技术B 不会有问题,但是效率不高;Oracle会自动将number转换为varchar2进行比较,数据量大的话建议使用r.region_code=to_char(m.dept_id)追问

我在两个环境中运行了一下,一个环境中会出现“无效数据”,而另一个就能查询数据,不受影响,这跟表中的数据有关吗,两个环境的表结构都是一样的,数据有些变动

追答

无效数据是数据问题,根据经验应该是出现数据不能转换情况,看看是否有NULL或其它to_char不能处理的数据类型,如clob等。

本回答被提问者和网友采纳
参考技术C 在设置这两个表的时候,region_code和dept_id这两个字段应设置为同一类型 参考技术D 当然会有问题咯,一定要类型相同,建议用varchar,可以省很多不必要的烦恼

pl sql连接oracle设置

http://blog.csdn.net/cselmu9/article/details/8070728/

由于硬件技术的不断更新,Win7系统逐渐成为主流,而且计算机内存逐渐增大,为了充分的利用内存资源(因为32为系统最多只能用到3G左右的内存),提高系统性能,很多人开始使用Win7(64Bit)的系统。在64位系统上安装64位的Oracle数据库,但是没有对应的64位PL/SQL Developer,此时就不能使用PL/SQL Developer来进行直接连接的,所以要想实现连接还得需要其他途径来完成。下面就来说明如何实现连接。

 

一、下载Oracle客户端

下载地址:http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html,点击连接进入会出现以下页面。

技术分享

选择第一个Instant Client for Microsoft Windows (32-bit) 进行下载就可以了,请不要下载64bit的,我试过,不能实现连接的。

二、配置Oracle客户端

下载之后将其解压,不需要进行安装,比如解压到......\TOOLS_APP目录下,然后在instantclient_11_2目录下新建两层文件夹\NETWORK\ADMIN,再在ADMIN文件夹下面建一个tnsnames.ora文件,然后向文件中添加如下内容:

 

[plain] view plain copy
 
 print?
  1. ORACLE =  
  2.   (DESCRIPTION =  
  3.     (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))  
  4.     (CONNECT_DATA =  
  5.       (SERVER = DEDICATED)  
  6.       (SERVICE_NAME = ORACLE)  
  7.     )  
  8.   )  
  9.   
  10. LISTENER_ORACLE =  
  11.   (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))  
  12.   
  13.   
  14. ORACLR_CONNECTION_DATA =  
  15.   (DESCRIPTION =  
  16.     (ADDRESS_LIST =  
  17.       (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))  
  18.     )  
  19.     (CONNECT_DATA =  
  20.       (SID = CLRExtProc)  
  21.       (PRESENTATION = RO)  
  22.     )  
  23.   )  

以上的内容可以在这个地方进行拷贝:E:\OracleDB\app\MuLing\product\11.2.0\dbhome_1\network\admin\tnsnames.ora

 

三、进行安装PL/SQL Developer

将之前下载好的PL/SQL Developer(没有的在网上自行下载)进行安装,但需要强调一点:安装路径中不能有括号,不要安装在C:\Program Files (x86)目录下面

 

四、进行PL/SQL Developer的配置:

安装完成之后,运行PL/SQL Developer,此时出现的登录窗体不能进行登录,点击Calcel按钮,这时会在无登录状态下进入。

技术分享

配置相应信息,把之前的解压包信息配置上:

技术分享

五、重新启动PL/SQL Developer进行登录。

技术分享

输入相应的信息就可以进行连接登录。

六、验证是否真的连接到Oracle了

写一条Sql语句进行验证,查询可以看到下面的效果,说明连接成功。

技术分享

 



以上是关于oracle数据库左右连接问题的主要内容,如果未能解决你的问题,请参考以下文章

不安装oracle客户端,用plsql连接oracle

数据库知识点

leetcode组合两张表——oracle的左右连接运用

Oracle 数据库基础学习 子查询

Oracle 10g 最大可分配内存数问题,请数据库高手给予解答,详细问题见下:

pl sql连接oracle设置