Quote:
Originally posted by rnealejr
Can you post the original oracle sql query and the query you tried to convert to sql server ?
|
Oracle SQL:
SELECT
CASE WHEN GRP6.M_ACTOR_C_NAME IS NOT NULL THEN GRP6.M_ACTOR_C_NAME || '\' END ||
CASE WHEN GRP5.M_ACTOR_C_NAME IS NOT NULL THEN GRP5.M_ACTOR_C_NAME || '\' END ||
CASE WHEN GRP4.M_ACTOR_C_NAME IS NOT NULL THEN GRP4.M_ACTOR_C_NAME || '\' END ||
CASE WHEN GRP3.M_ACTOR_C_NAME IS NOT NULL THEN GRP3.M_ACTOR_C_NAME || '\' END ||
CASE WHEN GRP2.M_ACTOR_C_NAME IS NOT NULL THEN GRP2.M_ACTOR_C_NAME || '\' END ||
CASE WHEN GRP1.M_ACTOR_C_NAME IS NOT NULL THEN GRP1.M_ACTOR_C_NAME || '\' END || ' ' Path,
CASE WHEN GRP1.M_ACTOR_C_NAME IS NULL THEN ' ' ELSE GRP1.M_ACTOR_C_NAME END Group_Name,
OBJ_M_ACTOR.M_ACTOR_C_NAME Actor_name,
CASE WHEN OBJ_M_ACTOR.M_ACTOR_N_TYPE = 1 THEN 'Group'
WHEN OBJ_M_ACTOR.M_ACTOR_N_TYPE = 16 THEN 'User'
WHEN OBJ_M_ACTOR.M_ACTOR_N_TYPE = 128 THEN 'CMDSetting'
ELSE 'Type ' || to_char(OBJ_M_ACTOR.M_ACTOR_N_TYPE)
END Actor_Type,
rtrim(
CASE WHEN to_number(bitand(OBJ_M_ACTOR.M_ACTOR_N_STATUS, 1)) = 1 THEN 'enabled, ' END ||
CASE WHEN to_number(bitand(OBJ_M_ACTOR.M_ACTOR_N_STATUS, 1)) = 0 THEN 'disabled, ' END ||
CASE WHEN to_number(bitand(OBJ_M_ACTOR.M_ACTOR_N_STATUS, 128)) = 128 THEN 'locked, ' END ||
CASE WHEN to_number(bitand(OBJ_M_ACTOR.M_ACTOR_N_STATUS, 2)) = 2 THEN 'locked-2, ' END ||
CASE WHEN to_number(bitand(OBJ_M_ACTOR.M_ACTOR_N_STATUS, 4)) = 4 THEN 'offline prevent, ' END ||
CASE WHEN to_number(bitand(OBJ_M_ACTOR.M_ACTOR_N_STATUS, 8)) = 8 THEN 'cannot change password, ' END ||
CASE WHEN to_number(bitand(OBJ_M_ACTOR.M_ACTOR_N_STATUS, 32)) = 32 THEN 'realtime update, ' END ||
CASE WHEN to_number(bitand(OBJ_M_ACTOR.M_ACTOR_N_STATUS, 64)) = 64 THEN 'cannot delete documents, ' END ||
CASE WHEN to_number(bitand(OBJ_M_ACTOR.M_ACTOR_N_STATUS, 256)) = 256 THEN 'disable login of pre-4.1.5 release, ' END, ', ') Actor_Status
FROM
OBJ_M_ACTOR GRP1,
OBJ_M_ACTOR GRP2,
OBJ_M_ACTOR GRP3,
OBJ_M_ACTOR GRP4,
OBJ_M_ACTOR GRP5,
OBJ_M_ACTOR GRP6,
OBJ_M_ACTOR,
OBJ_M_ACTORLINK ACTL_2,
OBJ_M_ACTORLINK ACTL_1,
OBJ_M_ACTORLINK ACTL_3,
OBJ_M_ACTORLINK ACTL_4,
OBJ_M_ACTORLINK ACTL_5,
OBJ_M_ACTORLINK ACTL_6,
OBJ_M_ACTORLINK
WHERE
OBJ_M_ACTOR.M_ACTOR_N_LAT <> 1
AND ACTL_1.M_ACTL_N_ACTORID=GRP1.M_ACTOR_N_ID(+)
AND ACTL_1.M_ACTL_N_ACTORTYPE(+)=1
AND ACTL_1.M_ACTL_N_FATLINKID=ACTL_2.M_ACTL_N_ID(+)
AND GRP2.M_ACTOR_N_ID(+)=ACTL_2.M_ACTL_N_ACTORID
AND ACTL_2.M_ACTL_N_ACTORTYPE(+)=1
AND ACTL_2.M_ACTL_N_FATLINKID=ACTL_3.M_ACTL_N_ID(+)
AND GRP3.M_ACTOR_N_ID(+)=ACTL_3.M_ACTL_N_ACTORID
AND ACTL_3.M_ACTL_N_ACTORTYPE(+)=1
AND ACTL_3.M_ACTL_N_FATLINKID=ACTL_4.M_ACTL_N_ID(+)
AND GRP4.M_ACTOR_N_ID(+)=ACTL_4.M_ACTL_N_ACTORID
AND ACTL_4.M_ACTL_N_ACTORTYPE(+)=1
AND ACTL_4.M_ACTL_N_FATLINKID=ACTL_5.M_ACTL_N_ID(+)
AND GRP5.M_ACTOR_N_ID(+)=ACTL_5.M_ACTL_N_ACTORID
AND ACTL_5.M_ACTL_N_ACTORTYPE(+)=1
AND GRP6.M_ACTOR_N_ID(+)=ACTL_6.M_ACTL_N_ACTORID
AND ACTL_6.M_ACTL_N_ACTORTYPE(+)=1
AND ACTL_5.M_ACTL_N_FATLINKID=ACTL_6.M_ACTL_N_ID(+)
AND GRP1.M_ACTOR_N_TYPE(+)=1
AND GRP2.M_ACTOR_N_TYPE(+)=1
AND GRP3.M_ACTOR_N_TYPE(+)=1
AND GRP4.M_ACTOR_N_TYPE(+)=1
AND GRP5.M_ACTOR_N_TYPE(+)=1
AND GRP6.M_ACTOR_N_TYPE(+)=1
AND ACTL_1.M_ACTL_N_LAT(+) <> 1
AND ACTL_2.M_ACTL_N_LAT(+) <> 1
AND ACTL_3.M_ACTL_N_LAT(+) <> 1
AND ACTL_4.M_ACTL_N_LAT(+) <> 1
AND ACTL_5.M_ACTL_N_LAT(+) <> 1
AND ACTL_6.M_ACTL_N_LAT(+) <> 1
AND GRP1.M_ACTOR_N_LAT(+) <> 1
AND GRP2.M_ACTOR_N_LAT(+) <> 1
AND GRP3.M_ACTOR_N_LAT(+) <> 1
AND GRP4.M_ACTOR_N_LAT(+) <> 1
AND GRP5.M_ACTOR_N_LAT(+) <> 1
AND GRP6.M_ACTOR_N_LAT(+) <> 1
AND ACTL_1.M_ACTL_N_ID(+)=OBJ_M_ACTORLINK.M_ACTL_N_FAT LINKID
AND OBJ_M_ACTORLINK.M_ACTL_N_ACTORID(+)=OBJ_M_ACTOR.M_ ACTOR_N_ID
AND OBJ_M_ACTORLINK.M_ACTL_N_LAT(+)<>1
order by 1,2
The sql server query i tryed, but it is not completed.
SELECT
CASE WHEN GRP6.M_ACTOR_C_NAME IS NOT NULL THEN GRP6.M_ACTOR_C_NAME + '\' END +
CASE WHEN GRP5.M_ACTOR_C_NAME IS NOT NULL THEN GRP5.M_ACTOR_C_NAME + '\' END +
CASE WHEN GRP4.M_ACTOR_C_NAME IS NOT NULL THEN GRP4.M_ACTOR_C_NAME + '\' END +
CASE WHEN GRP3.M_ACTOR_C_NAME IS NOT NULL THEN GRP3.M_ACTOR_C_NAME + '\' END +
CASE WHEN GRP2.M_ACTOR_C_NAME IS NOT NULL THEN GRP2.M_ACTOR_C_NAME + '\' END +
CASE WHEN GRP1.M_ACTOR_C_NAME IS NOT NULL THEN GRP1.M_ACTOR_C_NAME + '\' END + ' ' Path,
CASE WHEN GRP1.M_ACTOR_C_NAME IS NULL THEN ' ' ELSE GRP1.M_ACTOR_C_NAME END Group_Name,
OBJ_M_ACTOR.M_ACTOR_C_NAME Actor_name,
CASE WHEN OBJ_M_ACTOR.M_ACTOR_N_TYPE = 1 THEN 'Group'
WHEN OBJ_M_ACTOR.M_ACTOR_N_TYPE = 16 THEN 'User'
WHEN OBJ_M_ACTOR.M_ACTOR_N_TYPE = 128 THEN 'CMDSetting'
ELSE 'Type' + cast(OBJ_M_ACTOR.M_ACTOR_N_TYPE as Decimal)
END Actor_Type,
rtrim(
CASE WHEN cast(OBJ_M_ACTOR.M_ACTOR_N_STATUS as int) = 1 THEN 'enabled, ' END +
CASE WHEN cast(OBJ_M_ACTOR.M_ACTOR_N_STATUS as int) = 0 THEN 'disabled, ' END +
CASE WHEN cast(OBJ_M_ACTOR.M_ACTOR_N_STATUS as int) = 128 THEN 'locked, ' END +
CASE WHEN cast(OBJ_M_ACTOR.M_ACTOR_N_STATUS as int) = 2 THEN 'locked-2, ' END +
CASE WHEN cast(OBJ_M_ACTOR.M_ACTOR_N_STATUS as int) = 4 THEN 'offline prevent, ' END +
CASE WHEN cast(OBJ_M_ACTOR.M_ACTOR_N_STATUS as int) = 8 THEN 'cannot change password, ' END +
CASE WHEN cast(OBJ_M_ACTOR.M_ACTOR_N_STATUS as int) = 32 THEN 'realtime update, ' END +
CASE WHEN cast(OBJ_M_ACTOR.M_ACTOR_N_STATUS as int) = 64 THEN 'cannot delete documents, ' END +
CASE WHEN cast(OBJ_M_ACTOR.M_ACTOR_N_STATUS as int) = 256 THEN 'disable login of pre-4.1.5 release,' END) Actor_Status
FROM
OBJ_M_ACTOR GRP1 LEFT outer join OBJ_M_ACTORLINK ACTL_1 ON GRP1.M_ACTOR_N_ID=ACTL_1.M_ACTL_N_ACTORID,
OBJ_M_ACTORLINK ACTL_2 INNER JOIN OBJ_M_ACTORLINK ACTL_1a ON ACTL_2.M_ACTL_N_ID=ACTL_1a.M_ACTL_N_FATLINKID,
OBJ_M_ACTOR GRP2 left outer join OBJ_M_ACTORLINK ACTL_2a on GRP2.M_ACTOR_N_ID=ACTL_2a.M_ACTL_N_ACTORID,
OBJ_M_ACTORLINK ACTL_3a INNER JOIN OBJ_M_ACTORLINK ACTL_2a1 ON ACTL_3a.M_ACTL_N_ID=ACTL_2a1.M_ACTL_N_FATLINKID,
OBJ_M_ACTOR GRP3 left outer join OBJ_M_ACTORLINK ACTL_3 on GRP3.M_ACTOR_N_ID=ACTL_3.M_ACTL_N_ACTORID,
OBJ_M_ACTORLINK ACTL_3a1 INNER JOIN OBJ_M_ACTORLINK ACTL_4 ON ACTL_3a1.M_ACTL_N_ID=ACTL_4.M_ACTL_N_FATLINKID,
OBJ_M_ACTOR GRP4 left outer join OBJ_M_ACTORLINK ACTL_4a on GRP4.M_ACTOR_N_ID=ACTL_4a.M_ACTL_N_ACTORID,
OBJ_M_ACTORLINK ACTL_4a1 INNER JOIN OBJ_M_ACTORLINK ACTL_5 ON ACTL_4a1.M_ACTL_N_ID=ACTL_5.M_ACTL_N_FATLINKID,
OBJ_M_ACTOR GRP5 left outer join OBJ_M_ACTORLINK ACTL_5a on GRP5.M_ACTOR_N_ID=ACTL_5a.M_ACTL_N_ACTORID,
OBJ_M_ACTOR GRP6 left outer join OBJ_M_ACTORLINK ACTL_6a on GRP6.M_ACTOR_N_ID=ACTL_6a.M_ACTL_N_ACTORID,
OBJ_M_ACTORLINK ACTL_5a1 INNER JOIN OBJ_M_ACTORLINK ACTL_6 ON ACTL_5a1.M_ACTL_N_ID=ACTL_6.M_ACTL_N_FATLINKID,
OBJ_M_ACTORLINK ACTL_7 left outer join OBJ_M_ACTORLINK ON ACTL_7.M_ACTL_N_ID=OBJ_M_ACTORLINK.M_ACTL_N_FATLIN KID,
OBJ_M_ACTORLINK OA LEFT OUTER JOIN OBJ_M_ACTOR ON OA.M_ACTL_N_ACTORID=OBJ_M_ACTOR.M_ACTOR_N_ID
WHERE
OBJ_M_ACTOR.M_ACTOR_N_LAT<>1
AND OBJ_M_ACTORLINK.M_ACTL_N_LAT<>1
ORDER BY 1,2
thanks.