创建计算视图脚本SQL时出错

2020-08-22 07:20发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)您好,我在最终确定此计算视图时遇...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


您好,我在最终确定此计算视图时遇到麻烦,我已经进行了一些更正,并且在这里阅读了一些主题,例如授予_SYS_REPO权限,但尚未解决。 我已经看过下面的链接,但没有解决方法。

https://answers。 sap.com/questions/12668164/insufficient-privileges---not-authorized-deploy-ca.html

使用下面的脚本

/*********开始过程脚本************/

开始

var_out =

选择T0。" RefDate",T0。" TransId",T0。" BaseRef",T0。" Ref1",T0。" Ref2",T0。" Ref3",T1。" Ref3Line",T1。" ContraAct ",T1。" LineMemo",T2。" AcctCode",T2。" AcctName",例T1。"借方" = 0 THEN T1。"借方"当T7。" PrcAmount"为空时,则T1。"借方 " ELSE T7。" PrcAmount" END END为" Debito",当T1时为CASE。" Credit" = 0 THEN T1。" Credit"当T7时为ELSE CASE。" PrcAmount"为NULL然后T1。" Credit" ELSE T7。" PrcAmount " END END AS" Credito",T1。" ProfitCode",T1。" OcrCode2",T1。" OcrCode3",T1。" OcrCode4"

从" SBO_3A"。" OJDT"

T0内部联接" SBO_3A"。" JDT1" T1在T0上。" TransId" = T1。" TransId"

内部联接" SBO_3A"。" OACT" T2在T1上。"帐户" = T2。" AcctCode"

左联接" SBO_3A"。" OOCR" T3在T1上。" ProfitCode" = T3。" OcrCode"

左联接" SBO_3A"。" OCR1" T4在T3上。" OcrCode" = T4。" OcrCode"

左联接" SBO_3A"。" OPRC" T5在T4上。" PrcCode" = T5。" PrcCode"

左联接" SBO_3A"。" OMDR" T6在T1上。" ProfitCode" = T6。" OcrCode"

OR T1。" OcrCode2" = T6。" OcrCode"

OR T1。" OcrCode3" = T6。" OcrCode"

左联接" SBO_3A"。" MDR1" T7在T6上。" OcrCode" = T7。" OcrCode"

;

END/*********结束过程脚本************/

下面的错误脚本:

存储库:在存储库运行时扩展中遇到错误;模型不一致。 部署计算视图:SQL:返回类型不匹配:过程3A/3A_PLANO_CONTAS_CAL_VIEW/proc:VAR_OUT [RefDate:TIMESTAMP TransId:INT BaseRef:NVARCHAR(11)Ref1:NVARCHAR(100)Ref2:NVARCHAR(100)Ref3:NVARCHAR(27)Ref3Line :NVARCHAR(27)相反:NVARCHAR(15)LineMemo:NVARCHAR(50)AcctCode:NVARCHAR(15)AcctName:NVARCHAR(100)Debito:DECIMAL(21,6)Credito:DECIMAL(21,6)ProfitCode:NVARCHAR(8) )OcrCode2:NVARCHAR(8)OcrCode3:NVARCHAR(8)!=预期结果[RefDate:TIMESTAMP TransId:INT BaseRef:NVARCHAR(11)Ref1:NVARCHAR(100)Ref2:NVARCHAR(100)Ref3 :NVARCHAR(100)Ref3Line:NVARCHAR(27)相反:NVARCHAR(15)LineMemo:NVARCHAR(50)AcctCode:NVARCHAR(15)AcctName:NVARCHAR(100)Debit:DECIMAL(22,0)PrcAmount:DECIMAL(22,0 )信用:DECIMAL(22,0)ProfitCode:NVARCHAR(8)OcrCode2:NVARCHAR(8)OcrCode3:NVARCHAR(8)OcrCode4:NVARCHAR(8)]:

第4行第4行(位于pos 264)设置架构DDL语句:设置架构" _SYS_REPO"类型DDL:创建类型

" _ SYS_BIC"。" 3A/3A_PLANO_CONTAS_CAL_VIEW/proc/tabletype/VAR_OUT"作为表格(" RefDate" TIMESTAMP," TransId" INTEGER," BaseRef" NVARCHAR(11)," Ref1" NVARCHAR(100)," Ref2" NVARCHAR(100)," Ref3" NVARCHAR(100)," Ref3Line" NVARCHAR(27)," ContraAct" NVARCHAR(15)," LineMemo" NVARCHAR(50)," AcctCode" NVARCHAR(15)," AcctName" NVARCHAR( 100),"借方" DECIMAL(22,0)," PrcAmount" DECIMAL(22,0),"贷方" DECIMAL(22,0)," ProfitCode" NVARCHAR(8)," OcrCode2" NVARCHAR(8)," OcrCode3" NVARCHAR(8)," OcrCode4" NVARCHAR(8))过程DDL:创建过程" _SYS_BIC"。" 3A/3A_PLANO_CONTAS_CAL_VIEW/proc"(OUT var_out" _SYS_BIC"。" 3A/3A_PLANO_CONTAS_CAL_OUT/proc/表类型 语言sqlscript sql安全定义程序将sql数据读取为/********* Begin Procedure脚本************/BEGIN

4条回答
bbpeas
2020-08-22 07:46 .采纳回答

如上一个答案所述,查询视图列的结构和输出结构VAR_OUT必须相同。 相同的意思是:

  • 相同的列数
  • 相同的列数
  • 相同的列名(考虑大写/小写;可以通过调整
  • 相同类型的列

锁定获取的日志,您可以轻松地将其进行比较(如果您不想看一下 对象本身;-))。 然后您会发现以下差异:

因此,请调整您的编码以使其具有相同的结构。

另一个提示:您不应再使用脚本化的计算视图。 他们已经过了相当长的一段时间了。 如果您需要SQLScript,则可以创建一个表函数并在图形计算视图中将该表函数用作投影中的数据源。 将来可能会节省您一些迁移时间。

一周热门 更多>