当一个新建的数据库使用存储过程报错

本文详细介绍了在Oracle环境中创建dblink连接不同数据库的过程,包括检查权限、创建dblink、操作数据库及解决权限不足和序列不存在的问题。
摘要由CSDN通过智能技术生成

第一,创建dblink

oracle创建dblink方法
1.应用场景:

现有两个数据库,一个是nc650115,一个是nc56,现要通过dblink在nc650115连接nc56。

2.先在nc650115查看是否拥有创建dblink权限。在nc650115中执行

 select * from user_sys_privs where privilege like upper('%DATABASE LINK%'); 
有权限显示如下

没有权限到sys里面授权

grant CREATE PUBLIC DATABASE LINK,DROP PUBLIC DATABASE LINK to nc650115; 
3.在nc650115下创建dblink。

create public database link NC65DBLINK    
 connect to nc56 identified by nc56  
 using '(DESCRIPTION =(ADDRESS_LIST =(ADDRESS =(PROTOCOL = TCP)(HOST = 192.168.17.254)(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME = orcl)))';
其中NC65DBLINK 为dblink名字,

 connect to 需要连接的用户名 identified by 密码

HOST=需要连接数据库的ip

SERVICE_NAME=数据库实例

查看是否创建成功

select * from dba_db_links;
select owner,object_name from dba_objects where object_type='DATABASE LINK';--查询时间久
4.操作:

查询nc56里面的数据

 select * from crm_bd_building@NC65DBLINK
删除dblink

drop  public database link  NC65DBLINK

第二,此时错误日志未创建

可直接从其他数据库建立,建立后没有id自增

第三,报pl/sql:ora-02289:序列不存在

运行语句://这就是报错的插入语句
insert into ScadaDeviceList (DeviceId, DeviceNumber) values (SEQ_DeviceList.NextVal,'SCADA01')

直接运行下面的语句添加自增序列就行

CREATE SEQUENCE SEQ_DeviceList
 START WITH 80
 INCREMENT BY 1
 NOMINVALUE
 MAXVALUE 9999999999999999999999999
 NOCYCLE
 NOORDER
 CACHE 100;

第四,ora-01031:权限不足,去主机连接数据库运行下面两个语句

grant connect,resource,dba to cssy;

    赋权DBA之后,还有这个错误。  

    执行 grant all privileges to cssy;

    赋予任何主机访问数据的权限,问题得到了解决。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值