SQLDeveloper - 在没有CREATE DATABASE LINK权限的情况下在DB之间加入

时间:2018-02-08 12:27:20

标签: sql database oracle join hyperlink

我想弄清楚,如何从SQLDeveloper中的两个不同的oracle数据库中加入表,我目前只能相互隔离/分开访问。 问题是:我们公司限制了CREATE DATABASE LINK权限,所以没有机会以这种方式完成。 (数据库是只读数据库)。 有没有其他方式加入数据库?它仅用于诊断和数据流观察。

任何帮助或提示表示赞赏。

亲切的问候。

2 个答案:

答案 0 :(得分:2)

这里的sqldev / sqlcl中的@RunWith(SpringRunner.class) @SpringBootTest() @ContextConfiguration(initializers = MyApplicationContextInitializer.class) @AutoConfigureMockMvc public class SimpleTest { @Autowired private MockMvc mockMvc; @Test public void testEntityFiltering() throws Exception { this.mockMvc.perform(get("/v1/issues").param("fields", "id")) .andExpect(status().isOk()) // There should be only one field in the returned objects .andExpect(jsonPath("$[0].length()").value(1)); } } 命令可以提供帮助。此命令接受3个参数

  • 要创建的新本地表的名称
  • 远程数据库的完整连接详细信息。
  • 要在远程端发出的sql。

执行时,该工具将通过jdbc连接到远程数据库。发出sql。检索查询的结构以获取元数据以创建指定的本地新表。然后在迭代远程查询的结果集时批量插入本地表。

小心!此命令仅创建表。任何索引都需要手动添加。

以下是一个完整的例子:

    java.lang.IllegalStateException: Failed to load ApplicationContext
    ...
    Caused by: java.lang.IllegalStateException: org.springframework.web.context.support.GenericWebApplicationContext@4116aac9 has not been refreshed yet
        at org.springframework.context.support.AbstractApplicationContext.assertBeanFactoryActive(AbstractApplicationContext.java:1067) ~[spring-context-4.3.13.RELEASE.jar:4.3.13.RELEASE]
        at org.springframework.context.support.AbstractApplicationContext.getBeansOfType(AbstractApplicationContext.java:1187) ~[spring-context-4.3.13.RELEASE.jar:4.3.13.RELEASE]
        at com.renault.api.examples.springboot.MyApplicationContextInitializer.initialize(MyApplicationContextInitializer.java:28) ~[classes/:na]
        at org.springframework.boot.SpringApplication.applyInitializers(SpringApplication.java:567) ~[spring-boot-1.5.9.RELEASE.jar:1.5.9.RELEASE]
        at org.springframework.boot.SpringApplication.prepareContext(SpringApplication.java:338) ~[spring-boot-1.5.9.RELEASE.jar:1.5.9.RELEASE]
        at org.springframework.boot.SpringApplication.run(SpringApplication.java:301) ~[spring-boot-1.5.9.RELEASE.jar:1.5.9.RELEASE]
        at org.springframework.boot.test.context.SpringBootContextLoader.loadContext(SpringBootContextLoader.java:120) ~[spring-boot-test-1.5.9.RELEASE.jar:1.5.9.RELEASE]
        at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:98) ~[spring-test-4.3.13.RELEASE.jar:4.3.13.RELEASE]
        at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:116) ~[spring-test-4.3.13.RELEASE.jar:4.3.13.RELEASE]
        ... 25 common frames omitted

答案 1 :(得分:1)

据我所知,您执行需要数据库链接才能执行您所要求的操作。如果您无法创建它,我担心您无法做到这一点,因为数据库无法通过其他方式看到对方。

如果这些是同一个数据库中的两个不同用户(模式),那么您只需要选择并享受。

也许您的公司将不得不重新考虑允许您使用数据库链接。或者,至少允许一次,以便您(或DBA)可以创建链接,然后撤消CREATE DATABASE LINK(但它已经存在,您将能够用它)。