标签: database-link

如何通过数据库链接执行Oracle存储过程

我可以通过数据库链接在Oracle中调用存储过程吗?

数据库链接功能正常,因此语法如......

SELECT * FROM myTable@myRemoteDB
Run Code Online (Sandbox Code Playgroud)

正在运作.但是有一个语法...

EXECUTE mySchema.myPackage.myProcedure('someParameter')@myRemoteDB
Run Code Online (Sandbox Code Playgroud)

database oracle stored-procedures database-link

29
推荐指数
1
解决办法
10万
查看次数

如何在MySQL中创建数据库链接以连接到Oracle?

我需要在MySQL中创建一个数据库链接以连接到Oracle数据库,以使用Oracle数据库中的表.

我无法在MySQL中找到任何创建数据库链接的代码或方法.我怎么能这样做?

mysql oracle database-link

7
推荐指数
1
解决办法
4万
查看次数

ORA-02019: 未找到远程数据库的连接描述

AM_ADMIN我通过 SQL Developer创建了一个数据库链接:

在此输入图像描述

我正在尝试检查它是否是有效的数据库链接。当我从 SQL Developer 向导测试它时,它是成功的。但是当我使用以下命令时:

SELECT * FROM dual@AM_ADMIN
Run Code Online (Sandbox Code Playgroud)

我收到错误:

ORA-02019: 未找到远程数据库的连接描述

我该如何纠正这个错误?

oracle database-link

7
推荐指数
1
解决办法
14万
查看次数

如何创建远程和本地是同一服务器的数据库链接

我需要创建一个数据库链接,该链接是指向同一服务器上的模式的链接.是否有一个特殊的关键字用于此?(如本地或本地主机)

我不完全确定服务器的名称在tnsnames中是什么,这可能是我的问题的一部分.

这是一个复杂的情况,涉及需要数据库链接继续的脚本.

oracle database-link

6
推荐指数
1
解决办法
5万
查看次数

我可以在Oracle中链接数据库链接吗?

我有3个数据库.1链接到2,链接到3.我想查询3中的表,从1.我尝试了third_db_tab @ 3 @ 2,它没有用.想知道这是否可能,如果是,那么语法是什么.

sql oracle database-link

5
推荐指数
1
解决办法
2852
查看次数

Oracle数据库链接.检查是否存在或覆盖?

在创建数据库链接之前,我需要检查数据库链接是否已存在.我怎样才能做到这一点?

我正在编写一个以此开头的SQL脚本:

DROP DATABASE LINK mydblink
Run Code Online (Sandbox Code Playgroud)

然后我创建一个:

CREATE DATABASE LINK mydblink
CONNECT TO testuser
IDENTIFIED BY mypswd
USING 'mypersonaldb'
Run Code Online (Sandbox Code Playgroud)

如果数据库链接不存在,我当然会在第一步中收到错误.如果我省略第一步并继续创建数据库链接,我将再次收到一条错误消息,说明它已经存在同名.

我该怎么做才能检查数据库链接是否已经存在?

oracle plsql database-link

5
推荐指数
1
解决办法
1万
查看次数

ORA-03150: 数据库链接的通信通道上的文件结尾

在 Oracle 数据库中,定期执行一个大型 PL/SQL 过程,通过数据库链接将数据从一个数据库复制到另一个数据库,几个小时后该过程失败并出现以下错误:

ORA-03150: end-of-file on communication channel for database link 
ORA-02063: preceding line from DBPREMOTE 
ORA-06512: at "DBLOCAL.JOB_NAME", line 710 
...
ORA-06512: at line 1 
Run Code Online (Sandbox Code Playgroud)

第 710 行是过程的第一行:

 execute immediate 'set constraints all deferred';
Run Code Online (Sandbox Code Playgroud)

然后该过程执行一些插入和更新,我猜由于 PK、数据无效或任何其他原因,这些操作在某些时候会失败。我猜想异常指向该行是因为它是第一行,而不是因为它实际上在那里失败,但我不确定真正的异常。

我是否有机会获得真正的异常,以便我可以处理它?

sql oracle exception database-link

5
推荐指数
1
解决办法
4万
查看次数

设计Oracle数据库上的作业监视

我有几个Oracle数据库,我的内部应用程序正在运行.这些应用程序使用dba_jobsdba_scheduler_jobs.

我想编写监控功能:check_my_jobsNagios会定期调用它来检查我的工作是否一切正常.(它们正在运行吗?它是否已损坏?next_run_date是否已延迟?依此类推)

解决方案:由于我必须监视不同数据库上的作业,因此有两种实现解决方案的方法:

  1. 仅在一个数据库上创建监视功能和配置表,该数据库将使用数据库链接检查每个数据库上的作业.

    优点:集中功能,易于维护.
    缺点:我必须使用数据库链接进行检查.

  2. 在我想要检查作业的每个数据库上创建监视功能和配置表.

    专业人士:我不必使用数据库链接
    缺点:每个数据库上都有重复的监控代码

哪种解决方案更好?

oracle jobs monitoring database-design database-link

5
推荐指数
0
解决办法
381
查看次数

强制 Oracle 在远程数据库站点上处理递归 CTE(可能使用 DRIVING_SITE 提示)

我正在尝试从远程表中获取数据。使用递归 CTE 从本地表中的种子数据集扩展数据。查询非常慢(300 个种子行到 800 个最终行需要 7 分钟)。

对于其他“微小的本地,巨大的远程” -没有递归查询的情况,DRIVING_SITE提示效果很好。我还尝试将种子集从本地表导出到remotedb具有相同结构的辅助表中,并且 - 已登录remotedb- 作为纯本地查询(my_tableas pmy_table_seed_copyas i)运行查询。花了 4 秒,这鼓励我相信强制查询到远程站点会使查询更快。

强制 Oracle 在远程站点上执行递归查询的正确方法是什么?

with s (id, data) as (
  select p.id, p.data
  from my_table@remotedb p
  where p.id in (select i.id from my_table i)
  union all
  select p.id, p.data
  from s
  join my_table@remotedb p on ...
)
select /*+DRIVING_SITE(p)*/ s.*
from s;
Run Code Online (Sandbox Code Playgroud)

在上面的查询中,我试过

  • select /*+DRIVING_SITE(p)*/ s.* 在主要选择
  • select /*+DRIVING_SITE(s)*/ s.* 在主要选择 …

sql oracle database-link recursive-query oracle11g

5
推荐指数
1
解决办法
96
查看次数

仅使用一组样本数据创建"生产"的"测试数据库"副本

我们有2个Oracle数据库.一个是我们的生产客户数据库.另一个是测试数据库.测试数据库是没有任何数据的生产副本......只是空表.我试图找到一种有效且有效的方法将一组样本数据从Production db复制到Test.

我需要从Customer表中的PK示例列表开始,并编写一个过程来使用该示例填充测试数据库Customer表.然后,我需要根据示例使用相关数据填充子表.

我们曾经有一个Java进程,它将使用预准备语句从Production中选择数据...根据结果集构建文件...然后使用update语句将其放入Test db.这非常低效.

我不是DBA所以我对这个领域知之甚少.我试图谷歌一些关于数据库链接的信息,但找不到很好的例子.

有谁知道这样做的方法......或者,至少给我一个起点?

java database oracle database-link

4
推荐指数
1
解决办法
2807
查看次数