【发布时间】:2019-02-06 13:12:16
【问题描述】:
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)
【问题讨论】:
-
据我所知,这只是一条 SQL 语句,你不需要 PL/SQL
-
@thatjeffsmith:但它使用动态 SQL - 你确实需要 PL/SQL
-
@a_horse_with_no_name 虽然它看起来不是很动态,它只是在做一个字符串替换
-
我知道它是一条 SQL 语句……但这条语句在 PL/SQL Oracle 中不起作用。所以我想知道有没有人可以帮助我翻译它。
标签: oracle plsql database-migration