declare @sql varchar(max)
declare @pimkeys varchar(max)
set @pimkeys = '69966,69965' -- input comma delimited values inside single quotation marks
SET @SQL =
'with basedata as(
SELECT
ec.Pim_key,pm.Parent_PIM_Key,pm.Item_Type,pm.Company_name,pm.Part_number,pm.Product_Desc,pm.Novation_Description
,ec.Name ,ec.Value
FROM edw..Products_PPS_Attributes AS ec
join edw..DM_Product_Master as pm on ec.Pim_Key = pm.PIM_Key
where ec.pim_key in ('+@pimkeys+'))
Select * from basedata
PIVOT ( MAX(Value) FOR Name IN( Sync_Code,Product_Line_Brand ) ) AS p'
execute (@SQL)
答案 0 :(得分:2)
SQL Developer是Oracle提供的用于进行SQL Server迁移的平台。 One of the features is our scratch editor。
您可以粘贴T-SQL,它将吐出PL / SQL。
工具>迁移>临时编辑器
与其他任何翻译一样,它不能保证100%成功的翻译,但应该为您提供一个良好的开端。
这就是我们最终得到的结果,未经任何测试。
DECLARE
v_pimkeys VARCHAR2(4000);
v_SQL varchar2(4000); -- i had to manually add this after the translation
BEGIN
v_pimkeys := '69966,69965' ;-- input comma delimited values inside single quotation marks
v_SQL := 'with basedata as(
SELECT
ec.Pim_key,pm.Parent_PIM_Key,pm.Item_Type,pm.Company_name,pm.Part_number,pm.Product_Desc,pm.Novation_Description
,ec.Name ,ec.Value
FROM edw..Products_PPS_Attributes AS ec
join edw..DM_Product_Master as pm on ec.Pim_Key = pm.PIM_Key
where ec.pim_key in (' || v_pimkeys || '))
Select * from basedata
PIVOT ( MAX(Value) FOR Name IN( Sync_Code,Product_Line_Brand ) ) AS p' ;
EXECUTE IMMEDIATE v_SQL;
END;