私人

2015-10-07 70 views
1

我使用下面的代码来创建一个对象私人

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

可以将对象是私有的? – pablomatico

回答

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实际上谈论的特权。

你可以简单地通过登录为用户创建的类型要E中给出的特权,这样做只有当前用户将具有所有者权限,而其他用户无法访问该对象。

如果您打算授予权限给特定的用户,然后

GRANT EXECUTE ON "USER"."TYPENAME" TO "OTHER_USER"; 
+0

它给下面的警告 '遭遇“RECORD”在需要下列之一时的符号:固定不同不透明稀疏符号数组VARRAY表对象记录‘“对象之前插入’到continue.' 我只是想 –

+0

如果你想要这种模式级别的隐私,这一切都取决于你提供的GRANTS,如果访问GRANTS给其他USERS,他们可以使用,否则他们可以' T. –

+0

@ShobhitVarshney查看更新。 –