database - oracle 19c 中的内部与外部数据类型
问题描述
我读了很久Oracle documentation
,仍然无法理解有什么区别和实际含义Internal vs External datatype
。在oracle 19c
我阅读内部与外部数据类型。
有人可以建议,下面的代码如何与..它不兼容oracle19c
只是标题。我认为存在一些datatype
问题,但无法弄清楚。
我无法理解低于package specificatio
n 与oracle19c
. 此文件已被扫描无效。Oracle 文档没有帮助
CREATE OR REPLACE PACKAGE ABC_ECC_DATASECURITY_PKG_PUB AS
/* $Header: ABCCCDSS.pls 120.0.12020000.2 2020/11/17 21:49:12 mgarg noship $ */
PROCEDURE GetFilterAttributeValues
( p_dataset_key IN VARCHAR2,
p_user_id IN NUMBER,
p_org_id IN NUMBER,
p_resp_id IN NUMBER,
p_resp_app_id IN NUMBER,
p_sec_group_id IN NUMBER,
p_params IN ecc_sec_field_values DEFAULT NULL,
x_return_status OUT NOCOPY VARCHAR2,
x_return_message OUT NOCOPY VARCHAR2,
x_sec_filter OUT NOCOPY CLOB
);
END ABC_ECC_DATASECURITY_PKG_PUB;
/
COMMIT;
EXIT;
有人可以建议我oracle internal and external datatype
并在上面提供任何帮助specification
吗?
这里提到了internal vs external datatype
。
https://docs.oracle.com/en/database/oracle/oracle-database/19/lnoci/data-types.html#GUID-027FB2E2-593C-43F1-9184-DFEF7A984A27
解决方案
如果您省略了用户定义的数据类型,则您的包很好ecc_sec_field_values
:
CREATE OR REPLACE PACKAGE ABC_ECC_DATASECURITY_PKG_PUB AS
PROCEDURE GetFilterAttributeValues
( p_dataset_key IN VARCHAR2,
p_user_id IN NUMBER,
p_org_id IN NUMBER,
p_resp_id IN NUMBER,
p_resp_app_id IN NUMBER,
p_sec_group_id IN NUMBER,
x_return_status OUT NOCOPY VARCHAR2,
x_return_message OUT NOCOPY VARCHAR2,
x_sec_filter OUT NOCOPY CLOB
);
END ABC_ECC_DATASECURITY_PKG_PUB;
/
Package ABC_ECC_DATASECURITY_PKG_PUB compiled
但是,如果您包含ecc_sec_field_values
,我会收到错误消息:
CREATE OR REPLACE PACKAGE ABC_ECC_DATASECURITY_PKG_PUB AS
PROCEDURE GetFilterAttributeValues
( p_dataset_key IN VARCHAR2,
p_user_id IN NUMBER,
p_org_id IN NUMBER,
p_resp_id IN NUMBER,
p_resp_app_id IN NUMBER,
p_sec_group_id IN NUMBER,
p_params IN ecc_sec_field_values DEFAULT NULL,
x_return_status OUT NOCOPY VARCHAR2,
x_return_message OUT NOCOPY VARCHAR2,
x_sec_filter OUT NOCOPY CLOB
);
END ABC_ECC_DATASECURITY_PKG_PUB;
/
Error(9,35): PLS-00201: identifier 'ECC_SEC_FIELD_VALUES' must be declared
我猜这是TYPE
在其他文件中声明的。找找CREATE OR REPLACE TYPE ecc_sec_field_values
什么的。
顺便说一句,这COMMIT
似乎很危险,因为原作者似乎不了解CREATE
语句的提交行为......
推荐阅读
- html - 带有溢出滚动的固定位置 Div 在 Safari 中不可见
- ios - 用户登录一次后,我在设置初始化视图控制器时遇到问题
- c++ - 为什么我可以在 MSVC 和 icc 中为 glm::vec 创建用户定义的结构化绑定,但不能在 Clang 和 GCC 中创建?
- asp.net - 如何在 asp.net mvc 中更新图像?
- powershell - Powershell更改viso容器标题颜色和其他属性
- pandas - 熊猫排序可能的组合
- java - 如何使用 selenium、java 下载文件
- google-colaboratory - 谷歌 Colab 中的 CNN
- python - 替换文本文件中单词后面的数字
- angular - 如何在不使用按钮单击的情况下以 Angular 7 打开模式,