Как переписать этот оператор T-SQL в PL / SQL - PullRequest
0 голосов
/ 31 августа 2018
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)

1 Ответ

0 голосов
/ 31 августа 2018

SQL Developer - это платформа, предоставляемая Oracle для выполнения миграции на SQL Server. Одной из функций является наш редактор нуля .

Вы можете вставить в T-SQL, и он будет выплевывать PL / SQL.

Инструменты> Миграция> Scratch Editor

enter image description here

Не гарантирован 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;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...