oracle数据库,链接标识符是什么?

oracle数据库,链接标识符是什么?,第1张

oracle_server到底是你的连接标识符还是主机名?HOST = oracle_server,你改成机器IP试试。根据你的tnsnames.ora,你的数据机器名为oracle_server,SID为orcl,连接标识符为orcl,你确定是这样吗?如果是对的话,你直接用ORCL连接就可以了。如果还是连不了,看看标识符前有没有多余的空格。希望对你有帮助。

在把Oracle查询结果转换为SQL Server的时候要特别当心一些不容易注意到的问题。

我们知道,T-SQL是SQL Server的语言引擎,而Oracle的语言引擎却是PLSQL.这两种查询语言都对

ANSI SQL-92标准进行了扩展以提供额外的支持力度。你所创建的应用程序几乎都要用到这些补充特性。本文就对最常用的、非标准的Oracle扩展进行了说明,同时还要介绍下如何

对这些扩展进行转化以用在SQL Server环境下。

列的选择

用PLSQL执行数据查询的时候,FROM子句是必须的,这同SQL Server的要求是一样的。 SELECT语句必须选择针对的数据表。在Oracle数据库内有一种特殊的表DUAL.DUAL表由

Oracle连同数据字典一同创建,所有的用户都可以用名称DUAL访问该表。这个表里只有一列DUMMY,该列定义为VARCHAR2

(1)类型,有一行值X.

从DUAL表选择数据常被用来通过SELECT语句计算常数表达式,由于DUAL只有一行数据,所以常数只返回一次。

Oracle下的DUAL查询如下所示

SELECT

‘x’ FROM dual

而对等的SQL Server查询则是下面这个样子:

SELECT ‘x’

连接

Oracle用|| 符号作为连接符,而SQL Server的连接符是加号:+ .

Oracle查询如下所示:

Select ‘Name’ || ‘Last Name’

From tableName

对应的SQL Server查询如下所示:

Select ‘Name’ + ‘Last Name’

数字取舍

Oracle数据库内有一个TRUNC函数,该函数返回m位十进制数的n位;如果省略m则n就是0位。m的值可以为负,表示截去小数点左边m位数字。

在SQL Server下可以用Round或者Floor.

以下是Oracle查询:

SELECT

TRUNC(15.79,1) "Truncate" FROM DUAL;

下面是同类查询的SQL Server版本:

SELECT ROUND(15.79, 0) rounded ,

ROUND(15.79, 0,1) truncated

SELECT FLOOR(ROUND(15.79, 0)),

FLOOR(ROUND(15.79, 0,1) )

在把Oracle查询转换为SQL Server的时候要特别当心一些不容易注意到的问题。我们知道,T-SQL是SQL Server的语言引擎,而Oracle的语言引擎却是PLSQL.这两种查询语言都对

ANSI SQL-92标准进行了扩展以提供额外的支持力度。你所创建的应用程序几乎都要用到这些补充特性。本文就对最常用的、非标准的Oracle扩展进行了说明,同时还要介绍下如何

对这些扩展进行转化以用在SQL Server环境下。

列的选择

用PLSQL执行数据查询的时候,FROM子句是必须的,这同SQL Server的要求是一样的。 SELECT语句必须选择针对的数据表。在Oracle数据库内有一种特殊的表DUAL.DUAL表由

Oracle连同数据字典一同创建,所有的用户都可以用名称DUAL访问该表。这个表里只有一列DUMMY,该列定义为VARCHAR2

(1)类型,有一行值X.

从DUAL表选择数据常被用来通过SELECT语句计算常数表达式,由于DUAL只有一行数据,所以常数只返回一次。

Oracle下的DUAL查询如下所示:

SELECT

‘x’ FROM dual

而对等的SQL Server查询则是下面这个样子:

SELECT ‘x’

连接

Oracle用|| 符号作为连接符,而SQL Server的连接符是加号:+ .

Oracle查询如下所示:

Select ‘Name’ || ‘Last Name’

From tableName

对应的SQL Server查询如下所示:

Select ‘Name’ + ‘Last Name’

如何 *** 作Oracle数据库中的(+)连接

本文主要向你介绍的是Oracle数据库中的(+)连接的实际 *** 作,本文是以相关使用代码的描述来引出其实际的 *** 作,你如果是Oracle数据库中的'(+)连接的疯狂一族的话,就一起来看看吧!

1. 从表A.A1 (+) = 主表B.B1

复制代码SELECT

1.TO_CHAR(TBA.FBS_IO_DATE,'YYYY/MM/DD') A1

2.,TBA.TBA_TBD_NO A2

3.,TBB.TBB_NAME_S A3

4.,TBC.TBC_CHAR1 A4

5.,TBD.TBD_NAME A5

6.,TBA.TBA_SNS_NAME_SP A6

7.,TBA.TBA_TORI_KIN A7

8.,TO_CHAR(TBA.TBA_RPL_DATE,'YYYY/MM/DD') A8

9.FROM

10.SNTBATRN TBA

11.,ZMTBCMST TBC

12.,CMTBBMST TBB

13.,CMTBDMST TBD

14.WHERE

15.TBA.TBA_KAI_CODE = 'XXX'

16.AND TBA.TBA_KESHI_KBN = '0'

17.AND TBA.TBA_TAISYO_KBN IN ('0', '2')

18.AND TBB_KAI_CODE (+) = 'XXX'

19.AND TBB_BUN_CODE (+) = 'S001'

20.AND TBB_START_DATE <= SYSDATE

21.AND TBB_END_DATE >= SYSDATE

22.AND TBB.TBB_CODE (+)= TBA.TBA_STN_CODE

23.AND TBC.TBC_KAI_CODE (+) = 'XXX'

24.AND TBC.TBC_SUB_KBN (+) = 'SN'

25.AND TBD.TBD_KAI_CODE (+) = 'XXX'

26.AND TBD.TBD_CODE (+) = TBA.TBA_SNS_CODE

2. 主表A.A1 = 从表B.B1 (+)

1.复制代码

2.SELECT

3.TBA.TBA_1,

4.TBB.TBB_1,

5.TBC.TBC_1

6.FROM

7.TBA,

8.(SELECT TBB.TBB_1, TBB.TBB_2

9.FROM TBB

10.WHERE

11.TBB.TBB_3 LIKE '%NEWWEAPON%' TBB),

12.TBC

13.WHERE

14.主表TBC

15.TBA.TBA_A >2

16.从表TBB

17.AND TBA.TBA_2 = TBB.TBB_2

18.从表TBC

19.注意TRIM

20.AND TRIM(TBA.TBA_3) = TRIM(TBC.TBC_3 (+))


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6774020.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-28
下一篇 2023-03-28

发表评论

登录后才能评论

评论列表(0条)

保存