小编Bas*_*que的帖子

如何正确地从 Oracle 数据库中删除 java 源代码?

我的 Java 源代码有点卡在这里。首先我想从数据库中完全删除它,因为我想重新编译它,但我不能删除它,因为如果我执行这个命令:

drop java source "SCHEMA.JAVASOURCENAME";
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

ORA-04043: object JAVASOURCENAME does not exist
Run Code Online (Sandbox Code Playgroud)

Javasource 本身具有这种结构(这是它的 plsql/java 代码):

create or replace and compile java source named myjavasource as

import java.io.*;
import some.custom.jar.one.*;
import some.custom.jar.two.*;
import some.custom.jar.three.*;

    public class MyJavaClass
    {
      public static String myjavafunction(String connectString, String identity, String password)
      {
       ...
      }
    }
Run Code Online (Sandbox Code Playgroud)

我以 DBA 身份和我的用户执行了这个“创建或替换和编译 java 源代码...”命令,我不知道这是否可能是问题所在。

所以我的问题是,我怎样才能删除这个 java 源代码?

我的第二个问题是我可以处理自定义 jars 吗?我用这个命令导入了它们:

call dbms_java.loadjava('-genmissing -r -v -force -grant SCHEMA ./some.custom.jar.one.jar');
Run Code Online (Sandbox Code Playgroud)

我还以 DBA 身份和我的用户执行了此操作。如果是检查无效对象:

SELECT *
    FROM user_objects
    WHERE …
Run Code Online (Sandbox Code Playgroud)

oracle plsql java

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

SQL 执行时打印到控制台

当执行多个 SQL 命令时,例如在pgAdmin SQL 编辑器中,如何将一些字符串打印到控制台(pgAdmin 中的输出窗格)。我想监控执行情况。

UPDATE x
SET a = b 
WHERE a IS NULL
;

Print to console --> Finished x.

UPDATE y
SET a = b 
WHERE a IS NULL
;

Print to console --> Finished y.
Run Code Online (Sandbox Code Playgroud)

我的问题与StackOverflow Question相同。或者,正如克雷格·林格(Craig Ringer)对这个问题的解释:

您是否希望通过将 PgAdmin-III 运行的 SQL 查询打印到标准错误(通过在 cmd.exe 交互式控制台上启动 PgAdmin-III 来查看)来观察它们?


我看过有关的评论\echo 'some_text'。但这给了我错误:

ERROR: syntax error at or near "\"
SQL state: 42601
Run Code Online (Sandbox Code Playgroud)

postgresql

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

具有最新时间戳的行

如何获取列中具有最新值的TIMESTAMPZ行?是否需要索引?指数会改变策略吗?行为会因数据库而异吗(我使用的是 Postgres 9.4)?

我的应用程序记录来自数据馈送的数据。另一个过程无休止地查询以获取最新的最新条目。较旧的数据有时可能来自二手资料。所以最近插入的行通常但不一定是最新的数据。

我正在使用这种 SQL where when_is a TIMESTAMP WITH TIME ZONEcolumn:

SELECT *
FROM my_table_ 
ORDER BY when_ DESC
LIMIT 1
;
Run Code Online (Sandbox Code Playgroud)

此代码有效(如果数据中没有 NULL 值!)。但是可能有几百万行,并且每 10 秒查询一次,我很担心性能。

when_列上没有任何索引,此语句是否需要对所有行进行全面扫描?

添加索引会改变性能吗?Postgres 会自动扫描索引以定位最近的行,还是我必须做些什么才能进行索引扫描?

使用when_列上的索引,我是否应该更改此 SQL 以使用其他一些查询方法/策略?

有没有其他方法来收集新插入的行?我的主键使用UUID而不是SERIAL 类型,并且可能会在多个数据库实例之间联合数据,因此排除了检查不断增加的整数的可能性。

postgresql performance index index-tuning query-performance

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

具有“beginRequest”和“endRequest”方法的新 JDBC 4.3 连接请求功能是什么?

JDBC 4.3 更新 Java 9 2017-10一起发布。它的几个变化之一是关于和方法发出信号\xe2\x80\xa6 的新功能ConnectionbeginRequestendRequest

\n\n
\n

向驱动程序提示一个请求(一个独立的工作单元)正在此连接上开始。每个请求都独立于客户端或服务器上连接的本地状态的所有其他请求。beginRequest、endRequest 对之间完成的工作不依赖于连接上完成的任何其他工作,无论是作为另一个请求的一部分还是在任何请求之外。一个请求可能包含多个事务。可能存在对已提交数据库状态的依赖性,因为它不是连接本地的。

\n
\n\n

\xe2\x80\xa6 和 \xe2\x80\xa6

\n\n
\n

\xe2\x80\xa6 是可选的,特定于供应商的,并且应该在很大程度上是透明的。

\n
\n\n

\xe2\x9e\xa0 请解释一下此功能的用途。

\n\n

它似乎是关于比事务更大的事情,但与两阶段提交无关。与JDBC 4.3 的主要新特性sharding有关吗?

\n\n
    \n
  • 它是某种包含多个事务的范围吗?
  • \n
  • 哪些数据库使用了此功能?\n\n
  • \n
\n\n

我并不是在询问这些数据库是否已针对 JDBC 4.3 更新了JDBC 驱动程序。我问的是更大的情况,在跨连接的数据库连接上下文中“请求”的含义和目的是什么。

\n\n

奇怪的是,JDBC 4.3 规范只提到了这一点,没有任何解释:

\n\n
\n

JDBC API 更改

\n\n

对现有 JDBC 接口进行了以下更改。

\n\n

java.sql.Connection

\n\n

添加了方法 …

postgresql jdbc java sharding

2
推荐指数
1
解决办法
1858
查看次数