《SQL 21日自学通(V3.0)(PDF格式)》第119章


INPUT 
SQL》 SET ECHO OFF 
SQL》 SET FEEDBACK OFF 
366 
…………………………………………………………Page 367……………………………………………………………
SQL 21 日自学通(V1。0) 翻译人 笨猪 
SQL》 SET HEADING OFF 
SQL》 SPOOL PUB_SYN。SQL 
SQL》 SELECT "CREATE PUBLIC SYNONYM " || TABLE_NAME || " FOR " || 
2 OWNER || "。" || TABLE_NAME || ";" 
3 FROM SYS。DBA_TABLES 
4 WHERE OWNER = "RYAN" 
5 / 
OUTPUT 
CREATE PUBLIC SYNONYM ACCT_PAY FOR RYAN。ACCT_PAY; 
CREATE PUBLIC SYNONYM ACCT_REC FOR RYAN。ACCT_REC; 
CREATE PUBLIC SYNONYM CUSTOMERS FOR RYAN。CUSTOMERS; 
CREATE PUBLIC SYNONYM EMPLOYEES FOR RYAN。EMPLOYEES; 
CREATE PUBLIC SYNONYM HISTORY FOR RYAN。HISTORY; 
CREATE PUBLIC SYNONYM INVOICES FOR RYAN。INVOICES; 
CREATE PUBLIC SYNONYM ORDERS FOR RYAN。ORDERS; 
CREATE PUBLIC SYNONYM PRODUCTS FOR RYAN。PRODUCTS; 
CREATE PUBLIC SYNONYM PROJECTS FOR RYAN。PROJECTS; 
CREATE PUBLIC SYNONYM VENDORS FOR RYAN。VENDORS; 
现在 运行这个文件 
INPUT/OUTPUT 
SQL》 SPOOL OFF 
SQL》 ED PUB_SYN。SQL 
SQL》 SET ECHO ON 
SQL》 SET FEEDBACK ON 
SQL》 START PUB_SYN。SQL 
SQL》 CREATE PUBLIC SYNONYM ACCT_PAY FOR RYAN。ACCT_PAY; 
Synonym created。 
SQL》 CREATE PUBLIC SYNONYM ACCT_REC FOR RYAN。ACCT_REC; 
Synonym created。 
SQL》 CREATE PUBLIC SYNONYM CUSTOMERS FOR RYAN。CUSTOMERS; 
367 
…………………………………………………………Page 368……………………………………………………………
SQL 21 日自学通(V1。0) 翻译人 笨猪 
Synonym created。 
SQL》 CREATE PUBLIC SYNONYM EMPLOYEES FOR RYAN。EMPLOYEES; 
Synonym created。 
SQL》 CREATE PUBLIC SYNONYM HISTORY FOR RYAN。HISTORY; 
Synonym created。 
SQL》 CREATE PUBLIC SYNONYM INVOICES FOR RYAN。INVOICES; 
Synonym created。 
SQL》 CREATE PUBLIC SYNONYM ORDERS FOR RYAN。ORDERS; 
Synonym created。 
SQL》 CREATE PUBLIC SYNONYM PRODUCTS FOR RYAN。PRODUCTS; 
Synonym created。 
SQL》 CREATE PUBLIC SYNONYM PROJECTS FOR RYAN。PROJECTS; 
Synonym created。 
SQL》 CREATE PUBLIC SYNONYM VENDORS FOR RYAN。VENDORS; 
Synonym created 
分析 
几乎是马上 所有的数据库用户都可以通过公共同义字来访问为 RYAN 所拥有的表了 
现在用户无需在执行查询的时候对表加以限制 限制的意思就是必须指定表的所有者 如 
RYAN。VENDORS 
但是如果公共同义字并不存在呢 假如 BRANDON 想访问所有为 RYAN 所拥有的表 
来创建私有同义字时该如何做呢 
INPUT/OUTPUT 
SQL》 CONNECT BRANDON 
ENTER PASSWORD: ******* 
CONNECTED。 
SQL》 SET ECHO OFF 
SQL》 SET FEEDBACK OFF 
SQL》 SET HEADING OFF 
SQL》 SPOOL PRIV_SYN。SQL 
SQL》 SELECT "CREATE SYNONYM " || TABLE_NAME || " FOR " || 
368 
…………………………………………………………Page 369……………………………………………………………
SQL 21 日自学通(V1。0) 翻译人 笨猪 
2 OWNER || "。" || TABLE_NAME || ";" 
3 FROM ALL_TABLES 
4 / 
CREATE SYNONYM DUAL FOR SYS。DUAL; 
CREATE SYNONYM AUDIT_ACTIONS FOR SYS。AUDIT_ACTIONS; 
CREATE SYNONYM USER_PROFILE FOR SYSTEM。USER_PROFILE; 
CREATE SYNONYM CUSTOMERS FOR RYAN。CUSTOMERS; 
CREATE SYNONYM ORDERS FOR RYAN。ORDERS; 
CREATE SYNONYM PRODUCTS FOR RYAN。PRODUCTS; 
CREATE SYNONYM INVOICES FOR RYAN。INVOICES; 
CREATE SYNONYM ACCT_REC FOR RYAN。ACCT_REC; 
CREATE SYNONYM ACCT_PAY FOR RYAN。ACCT_PAY; 
CREATE SYNONYM VENDORS FOR RYAN。VENDORS; 
CREATE SYNONYM EMPLOYEES FOR RYAN。EMPLOYEES; 
CREATE SYNONYM PROJECTS FOR RYAN。PROJECTS; 
CREATE SYNONYM HISTORY FOR RYAN。HISTORY; 
INPUT/OUTPUT 
SQL》 SPOOL OFF 
SQL》 
SQL》 SET ECHO OFF 
SQL》 SET FEEDBACK ON 
SQL》 START PRIV_SYN。SQL 
Synonym created。 
Synonym created。 
Synonym created。 
Synonym created。 
Synonym created。 
Synonym created。 
Synonym created。 
Synonym created。 
369 
…………………………………………………………Page 370……………………………………………………………
SQL 21 日自学通(V1。0) 翻译人 笨猪 
Synonym created。 
Synonym created。 
Synonym created。 
Synonym created。 
Synonym created。 
分析 
几乎没做什么工作 BRANDON 就有了所有为 RYAN 所拥有的表的同义字 他不再需 
要对表进行限制了 
为你的表创建视图 
如果你想为一组表创建视图 你需要做与下例类似的工作 
INPUT 
SQL》 SET ECHO OFF 
SQL》 SET FEEDBACK OFF 
SQL》 SET HEADING OFF 
SQL》 SPOOL VIEWS。SQL 
SQL》 SELECT "CREATE VIEW " || TABLE_NAME || "_VIEW AS SELECT * FROM " || 
2 TABLE_NAME || ";" 
3 FROM CAT 
4 / 
OUTPUT 
CREATE VIEW ACCT_PAY_VIEW AS SELECT * FROM ACCT_PAY; 
CREATE VIEW ACCT_REC_VIEW AS SELECT * FROM ACCT_REC; 
CREATE VIEW CUSTOMERS_VIEW AS SELECT * FROM CUSTOMERS; 
CREATE VIEW EMPLOYEES_VIEW AS SELECT * FROM EMPLOYEES; 
CREATE
小说推荐
返回首页返回目录