相关疑难解决方法(0)

带有IN子句中参数列表的PreparedStatement

如何在执行查询时在JDBC中的preparedStatement中设置in子句的值.

例:

connection.prepareStatement("Select * from test where field in (?)");
Run Code Online (Sandbox Code Playgroud)

如果此子句可以包含多个值,我该怎么做.有时我事先知道参数列表,有时我事先不知道.如何处理这种情况?

java jdbc prepared-statement in-clause

84
推荐指数
6
解决办法
23万
查看次数

如何创建oracle.sql.ARRAY对象?

这个问题与我的原始问题有关如何将数组从Java返回到PL/SQL?,但更具体.

我一直在阅读Oracle数据库JDBC开发人员指南

但我仍然无法编写最小代码,我可以使用它来创建ARRAY

ARRAY array = oracle.jdbc.OracleConnection.createARRAY(sql_type_name, elements);
Run Code Online (Sandbox Code Playgroud)

按照创建ARRAY对象中的说明进行操作.

我正在使用Oracle数据库JVM.

我试过以下:

例1

create or replace type widgets_t is table of varchar2(32767);
/

create or replace and compile java source named "so20j1" as
public class so20j1 {
    public void f1() {
        String[] elements = new String[]{"foo", "bar", "zoo"};
        oracle.sql.ARRAY widgets =
            oracle.jdbc.OracleConnection.createARRAY("widgets_t", elements);
    }
};
/
show errors java source "so20j1"
Run Code Online (Sandbox Code Playgroud)

失败:

Errors for JAVA SOURCE "so20j1":

LINE/COL ERROR
-------- ----------------------------------------------------------------- …
Run Code Online (Sandbox Code Playgroud)

java oracle jdbc oracle11gr2

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

如何加载大量字符串与oracle数据库匹配?

我目前正在学习 PL/SQL,所以我还是一个新手。假设您有一个生产数据库,并使用 Oracle SQL Developer 连接到该数据库。您对该数据库仅有读取权限。因此您无法创建或编辑任何表。

我的问题是,如果我有一个很大的 ID 列表,我必须将其与该数据库中的表连接起来,我该怎么做?

显然,我可以将 ID 加载到临时表中,然后进行联接,但这确实很乏味,因为我只有读取权限。对 ID 进行硬编码也不是一种选择,因为列表太大。

另请注意,我知道临时表的概念。但不幸的是,我也没有创建这些的权限。

SQL Developer 中是否有任何解决方案可以加载 ID 列表,以与数据库中的表相匹配?

sql oracle oracle-sqldeveloper

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