Oracle SqlServer 同时支持,挺费劲的,问题(日期与临时表兼容,Tree 型数据所有父节点,子节点处理)
1. select
count(*)
from
(select
*
from
transaction_history
union
select
*
from
transaction
) --无别名(Oracle)
where
to_char(createdate,'yyyy-MM-dd')<='2012-01-06'
and to_char(createdate,'yyyy-MM-dd')>='2011-12-27'
and stockcode='000016'
但是SqlServer 不行,必须对临时表别名
select
count(*)
from
(select
*
from
transaction_history
union
select
*
from
transaction
) _temp--有别名(SqlServer)
where
convert(varchar(10), createdate, 20) <='2012-01-06'
and convert(varchar(10), createdate, 20) >='2011-12-27'
and stockcode='000016'
2.SQL 获取所有父节点
Sql_server fn:
CREATE FUNCTION f_getAllParent(@SID varchar(200))
RETURNS @t_Level TABLE(SID varchar(200),name varchar(100),Level int)
AS
BEGIN
declare @name varchar(100)
DECLARE @Level int
SET @Level=1
select @name=name from SYS_UNIT where sid=@sid
INSERT @t_Level SELECT @SID,@name,@Level
WHILE @@ROWCOUNT>0
BEGIN
SET @Level=@Level+1
INSERT @t_Level
SELECT a.parentsid,a.name,@Level
FROM SYS_UNIT a,@t_Level b
WHERE a.sid=b.sid
AND b.Level=@Level-1
END
RETURN
END
GO
测试代码:
select a.sid from SYS_UNIT a , f_getAllParent('dc=com') b where a.sid = b.sid order by b.Level
Oracle suppoet key word:
SELECT SID FROM SYS_UNIT
CONNECT BY PRIOR parentsid=sid --(prior 后跟的是父节点,则以 START WITH SID='dc=com'
指定的特定子节点作为当前子节点往上遍历所有父节点)
START WITH SID='dc=com'
3.获取所有子节点:
Sql_server fn:
create function f_GetAllChild(@sid varchar(200))
returns @re table(sid varchar(200),name varchar(100),level int)
as
begin
declare @name varchar(100)
declare @level int
set @level=1
select @name=name from SYS_UNIT where sid=@sid
insert @re select @sid,@name,@level
while @@rowcount>0
begin
set @level=@level+1
insert @re select a.sid,a.name,@level
from SYS_UNIT a,@re b
where a.parentsid=b.sid and b.level=@level-1
end
return
end
go
select a.sid,b.level from SYS_UNIT a , f_GetAllChildRole('dc=com') b where a.sid = b.sid order by b.Level
Oracle suppoet key word:
SELECT SID FROM SYS_UNIT
CONNECT BY PRIOR sid=parentsid --(prior 后跟的是子节点,则以 START WITH SID='dc=com'
指定的特定子节点作为当前根节点往下遍历所有子节点)
START WITH SID='dc=com'
Oracle注意区分Prior 后遍历的方向
分享到:
相关推荐
6. **注意事项**:在实际操作中,还需要确保操作系统和SQL Server版本与Oracle Provider兼容,并且安装过程中遵循Oracle的许可协议。"readme.txt"文件通常包含关于安装的额外信息和警告,应仔细阅读。 通过以上步骤...
7. **注意事项**:转换过程中需要注意兼容性问题,如SQL Server特有的特性(如clr存储过程)在Oracle中可能不支持。此外,数据迁移不仅仅是结构的迁移,还需考虑数据的一致性和完整性,避免因迁移导致的数据丢失。 ...
### 常见数据库db2,sqlserver,Oracle比较 #### 开放性 - **SQL Server**:只能在Windows平台上运行,这意味着对于操作系统的选择极为有限。由于Windows平台本身的设计更偏向于桌面应用,如Windows 9X系列,它们...
- **驱动兼容性**:确认所使用的 OLEDB 驱动与 SQL Server 和 Oracle 数据库版本兼容。 - **安全设置**:注意保护敏感信息(如用户名和密码)的安全性。 #### 六、总结 通过上述步骤,我们可以实现 SQL Server ...
3. **编辑OLE DB Source和SQL Server Destination的高级属性**: - 根据需要调整`OLE DB Source`和`SQL Server Destination`的高级属性,以满足特定的数据转换需求。 4. **运行数据转换**: - 最后,执行SSIS包以...
在项目中使用这些驱动jar包时,需要注意版本兼容性问题。不同的数据库版本可能需要对应版本的驱动,否则可能会导致连接失败或其他错误。同时,为了提高安全性,建议定期更新这些驱动,以获取最新的安全补丁和功能...
【标题】:“支持Oracle MySQL SQL Server DB2等数据库”意味着这款工具具备跨平台数据库管理的能力。这涵盖了市面上常见的四大关系型数据库管理系统(RDBMS),包括Oracle数据库、MySQL开源数据库、Microsoft SQL ...
在IT行业中,数据库管理系统(DBMS)是至关重要的组成部分,其中Oracle、IBM DB2和Microsoft SQL Server是最常用的关系型数据库系统。这些系统都需要相应的驱动程序来实现与应用程序的交互,通常是以Java Archive...
### SQL Server 2005与Oracle数据库之间的数据迁移 #### 概述 在不同的数据库管理系统之间进行数据迁移是一项常见的需求,特别是在企业级应用中。本文将详细介绍如何在Oracle数据库和SQL Server 2005之间进行数据...
但请注意,由于Oracle和SQL Server的数据类型、语法差异,可能需要进行一些转换或适配工作,以确保兼容性和正确性。此外,跨数据库查询时要注意性能监控,避免对任何一方数据库造成过大的负担。
本资源"sqlserver2008链接ORACLE服务器驱动.rar"正是为了解决这个问题,提供了SQL Server 2008连接到Oracle数据库所需的驱动程序和安装指南。 首先,我们要明白的是,SQL Server 2008本身并不直接支持Oracle数据库...
在SQL Server 2005中,我们需要安装Microsoft SQL Server 2005 Feature Pack,其中包含SQL Server 2005 OLE DB提供程序,这个组件使得SQL Server能够与Oracle进行通信。同时,确保Oracle客户端软件已经安装在服务器...
在SQL Server与Oracle互连的场景中,常见的方法包括但不限于ODBC(开放式数据库连接)、OLE DB、链接服务器(Linked Server)、异构连接服务(Heterogeneous Services)以及通过T-SQL的OPENQUERY等。 1. **ODBC ...
在此过程中,你可能会遇到数据类型不匹配的问题,这时需要根据Oracle数据库的兼容性进行数据类型转换。 点击“下一步”进入“目标”设置。选择“Oracle Provider for OLE DB”作为目标提供程序,输入Oracle服务器名...
在这个过程中,数据源选择“Oracle Provider for OLE DB”,这使得SQL Server能够通过OLE DB接口访问Oracle数据库。输入在第一步中相同的用户名和密码,并勾选“允许保存密码”。数据源名称应与第一步配置的ODBC数据...
在SQL Server中,通过链接服务器访问Oracle数据库时可能会遇到数据不全或报错的问题,这主要是由于版本不兼容或者驱动程序支持不足导致的。本文将详细介绍两种可能的解决方案。 首先,我们来理解一下问题的根源。当...
### 四大数据库的比较(SQL Server、Oracle、Sybase和DB2) #### 开放性 **SQL Server:** 仅限于Windows操作系统上运行,缺乏跨平台能力。这对于那些希望在不同操作系统之间灵活迁移的企业来说可能是一个限制因素...
2. **调整数据类型映射**:如果Oracle中的某些数据类型与SqlServer不兼容,可以在此步骤中手动编辑数据类型映射。 #### 四、常见问题及解决方法 在实际操作过程中,可能会遇到以下问题及其解决方案: 1. **主键与...