建立数据库链的同义词时所应注意的问题

建立数据库链的同义词时所应注意的问题

ID:24548283

大小:52.50 KB

页数:3页

时间:2018-11-15

建立数据库链的同义词时所应注意的问题_第1页
建立数据库链的同义词时所应注意的问题_第2页
建立数据库链的同义词时所应注意的问题_第3页
资源描述:

《建立数据库链的同义词时所应注意的问题》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、建立数据库链的同义词时所应注意的问题>>教育资源库  建立包含数据库链的同义词时需要额外的注意,否则很可能会出现问题。  如果同义词指向当前用户的对象,那么不会存在任何问题:SQL>CONNYANGTK/YANGTKYTK已连接。SQL>CREATEDATABASELINKTEST2CONNECTTOTESTIDENTIFIEDBYTESTUSING'TEST2';数据库链接已创建。SQL>SELECTCOUNT(*)FROMTESTTEST2;COUNT(*)----------5SQL>CREATESYNONYMTE

2、STFORTESTTEST2;同义词已创建。SQL>SELECTCOUNT(*)FROMTEST;COUNT(*)----------5如果是其他用户建立同义词指向TESTTEST2,则会出现问题:SQL>CREATEUSERABCIDENTIFIEDBYABC;用户已创建。SQL>GRANTDBATOABC;授权成功。SQL>CONNABC/ABCYTK已连接。SQL>CREATESYNONYMTESTFORYANGTK.TEST;同义词已创建。SQL>SELECTCOUNT(*)FROMTEST;SELECTCOUNT(

3、*)FROMTEST*第1行出现错误:ORA-02019:未找到远程数据库的连接说明  导致这个问题的最根本原因是数据库链,由于数据库链格式的特殊性,决定了其无法通过SCHEMA.DBLINK_NAME的方式访问。所以,用户只能访问当前用户下的数据库链或PUBLIC数据库链。  而对于同义词而言,只是一个别名而已,实际执行的时候,仍然会替换成原本的名称,所以实际上执行的是:SELECTCOUNT(*)FROMTESTTEST2。  而当前用户并不包含数据库链,所以出现了上面的错误。这个时候需要在当前用户下建立同样的数据库链:SQL>CREATEDATAB

4、ASELINKTEST2CONNECTTOTESTIDENTIFIEDBYTESTUSING'TEST2';数据库链接已创建。SQL>SELECTCOUNT(*)FROMTEST;COUNT(*)----------5  如果同义词指向的是全局数据库链则不会出现这个问题。  还有一点需要注意,如果当前用户已经存在一个同名的指向其他数据库的数据库链,或者用户人为的创建了一个这样的数据库链,就会造成错误的结果。SQL>CREATEDATABASELINKTEST2CONNECTTOTESTIDENTIFIEDBYTESTUSING

5、9;TESTDATA';数据库链接已创建。SQL>SELECTCOUNT(*)FROMTEST;COUNT(*)----------1SQL>SELECTCOUNT(*)FROMYANGTK.TEST;COUNT(*)----------1SQL>CONNYANGTK/YANGTKYTK已连接。SQL>SELECTCOUNT(*)FROMTEST;COUNT(*)----------5  表面上两个用户访问的是同一个对象,但是两个用户时间上访问的是不同的数据库,这里一定要多加注意。>>>>这篇文章来自..,。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。