我使用以下代码创建对象
CREATE OR REPLACE TYPE sales_object IS OBJECT (
dates DATE,
product_id VARCHAR2(20),
product_name VARCHAR2(50),
sale DECIMAL(15,2)
);
我用来创建一个包含以下代码的表
CREATE OR REPLACE TYPE year_sales_tab IS TABLE OF sales_object;
现在这个表正用于存储和返回网格的函数中。
如果有任何方法可以将 sales_object 创建为私有?
答案 0 :(得分:0)
如果有任何方法可以将sales_object创建为私有?
是。
不是将类型sales_object创建为 OBJECT ,而是在包中将其设置为 RECORD ,并在代码中使用它。当您创建为对象时,它将存储在数据库中,而如果您创建为记录,则只能在您的代码中使用它而不是其他地方。
TYPE sales_object
IS
RECORD
(
DATES DATE,
PRODUCT_ID VARCHAR2(20),
PRODUCT_NAME VARCHAR2(50),
sale DECIMAL(15,2)
);
更新 OP实际上是在谈论特权。
您可以通过记录您希望获得权限的用户来创建类型,只需要当前用户拥有所有者权限,而其他用户无法访问该对象。
如果您打算向特定用户授予权限,那么
GRANT EXECUTE ON "USER"."TYPENAME" TO "OTHER_USER";