如何使用带参数的视图进行连接?
我有一个参数化视图:
CREATE OR REPLACE VIEW "q_UFTrans"
(
IN TableName NVARCHAR(30),
IN LangInt int
)
AS
SELECT T0."FldValue", T3."Trans", T0."Descr"
FROM "UFD1" T0
LEFT JOIN "CUFD" T1 ON (T0."FieldID" = T1."FieldID" AND T0."TableID" = T1."TableID")
LEFT JOIN "OMLT" T2 ON T2."TableName" = 'UFD1'
LEFT JOIN "MLT1" T3 ON T2."TranEntry" = T3."TranEntry" AND T3."LangCode" = :LangInt
WHERE T0."TableID" = :TableName;
它可以工作,如果执行 "q_UFTrans"('OCTG',9),就会返回一个表。然而,如果我在以下代码中尝试对其进行连接:
SELECT T0."DocEntry", T0."GroupNum", T1."U_ShowPayment", T2."Trans" from "OINV" T0
LEFT JOIN "OCTG" T1 ON T1."GroupNum" = T0."GroupNum"
LEFT JOIN "q_UFTrans"('OCTG',9) T2 ON T2."FldValue" = T1."U_ShowPayment"
where T0."DocEntry" = '18057';
我得到的错误:
SAP DBTech JDBC: [7]: 不支持的特性:带未使用参数的参数化视图:q_UFTrans
这是怎么回事?我该如何和参数化视图进行连接?
解决方案
HANA不支持在JOIN中向参数化视图传递字面常量,请将其放入一个公共表表达式(CTE)中:
WITH uf AS (
SELECT "FldValue", "Trans", "Descr"
FROM "q_UFTrans"('OCTG', 'ShowPayment', 9)
)
SELECT T0."DocEntry", T0."GroupNum", T1."U_ShowPayment", T2."Trans"
FROM "OINV" T0
LEFT JOIN "OCTG" T1 ON T1."GroupNum" = T0."GroupNum"
LEFT JOIN uf T2 ON T2."FldValue" = T1."U_ShowPayment"
WHERE T0."DocEntry" = '18057';
站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。