CREATE VIEW "KIR_V_KAS_MASUK_KET" ("KODE_KAS", "NIS", "NAMA", "KELAS", "JURUSAN", "PERIODE", "TOTAL_PEMBAYARAN", "TOTAL_WAJIB_BAYAR", "KETERANGAN") as
SELECT DISTINCT
KMH.KODE_KAS,
KA.NIS,
KA.NAMA,
KA.KELAS,
KA.JURUSAN,
(SELECT PERIODE FROM KIR_KAS_MASUK_HEAD WHERE KODE_KAS=:P16_KODE_KAS) PERIODE,
TO_CHAR((SELECT SUM(PEMBAYARAN) FROM KIR_KAS_MASUK_DETAIL WHERE KODE_KAS = :P16_KODE_KAS), '999,999,999') TOTAL_PEMBAYARAN,
TO_CHAR(WAJIB_BAYAR * (SELECT COUNT(*) FROM KIR_ANGGOTA WHERE STATUS != 'TIDAK AKTIF'), '999,999,999') TOTAL_WAJIB_BAYAR,
KMD.KETERANGAN
FROM
KIR_ANGGOTA KA,
KIR_KAS_MASUK_HEAD KMH,
KIR_KAS_MASUK_DETAIL KMD
WHERE
KMD.KODE_KAS=KMH.KODE_KAS
AND
KMD.NIS=KA.NIS
/我希望有人纠正我在第10/45行中的语法,因为is说“第10/45行的错误: ORA-01027:不允许数据定义操作的绑定变量”。我真的不知道如何修正语法。
我需要创建一个视图表,以便我可以创建这个表单我想使用上面的代码构建的结果
发布于 2022-11-18 14:39:38
获得错误的原因是视图中有绑定变量(例如(SELECT PERIODE FROM KIR_KAS_MASUK_HEAD WHERE KODE_KAS=:P16_KODE_KAS)),根据错误,视图定义中不允许绑定变量。
您可以做的是创建一个上下文(需要与一个包相关联)--有关如何这样做的示例,请参阅文献资料,为该上下文分配一个值,然后在您的视图中使用它。
然后,您将在关联的包中有一个过程,该过程设置您感兴趣使用dbms_session.set_context的特定上下文值。
例如,类似:
create or replace context your_context using your_schema.your_package;
create or replace package your_package
as
...
procedure set_your_view_context_value (view_context_value);
...
end your_package;
/
create or replace package body your_package
as
...
procedure set_your_view_context_value (view_context_value)
is
begin
dbms_session.set_context('YOUR_CONTEXT', 'ATTRIBUTE_NAME', view_context_value);
end set_your_view_context_value;
...
end your_package;
/
create or replace view your_view
as
select sys_context('YOUR_CONTEXT', 'ATTRIBUTE_NAME')
from dual;https://stackoverflow.com/questions/74490917
复制相似问题