Tag: oracle

如何将ArrayList绑定到Oracle中的PreparedStatement?

我想知道是否有办法将ArrayList(或任何类型的List)绑定到PreparedStatement,最终将用于访问Oracle数据库。 我发现: PreparedStatement IN子句替代? 这似乎与我的问题类似,但这个问题更具体:我想将一个ArrayList绑定到一个PreparedStatement以在Oracle中使用,如果可能的话,这是如何实现的?

如何将数组从Java返回到PL / SQL?

从PL / SQL到Java来回传递数字和字符串没有问题,但是如何传递数组呢? 我从PL / SQL调用Java – 而不是其他方式。 下面是get_widgets_as_string按预期工作的示例。 如何为so19j.get_widgets_as_array()编写PL / SQL 调用规范 ,以便我可以从PL / SQL调用它? 我已经阅读了发布带有调用规范的Java类 ,我可以看到嵌套表对应于oracle.sql.ARRAY ,但是我无法使它工作。 我可能错过了一些微不足道的细节,因为我不是Java程序员。 create or replace and compile java source named “so19j” as import java.lang.*; public class so19j { public static String get_widgets_as_string() { String widgets = “foo;bar;zoo”; return widgets; } public static String[] get_widgets_as_array() { String[] widgets […]

为什么Oracle的DECODE给我的价值与NVL不同?

这个查询: select nvl(0.75,0) from dual 给我0.75 (数字),但这个查询: select decode(1,0,null,0.75) from dual 给我’.75′ (字符串)。 为什么? 我试图通过将第二个查询更改为: select decode(1,0,null,to_char(0.75,’0.99′)) from dual 但在我的实际代码中,0.75将是一个字段(NUMBER),可能有不同的小数位数,我不想添加/删除该值的任何内容。 有关如何修复缺失零问题但仍支持所有可能的小数长度的任何想法?

JDBC返回空结果集

我正在使用JDBC进行非常简单的数据库连接。 我创建了我的连接/语句并执行了查询。 我在调试器中检查语句的查询对象以确认它正在发送正确的查询。 然后我仔细检查数据库上的查询(直接从调试器复制)以确保它返回数据。 但是,返回的结果集在.next()上给出了false 这里有什么常见的陷阱,我错过了吗? public List getGroups() { myDB.sendQuery(“select distinct group_name From group_members where username='” + this.username + “‘”); ResultSet results = myDB.getResults(); List returnList = new ArrayList(); try { while (results.next()) { returnList.add(new InterestGroup(results.getString(“group_name”), myDB)); } return returnList; } catch (SQLException e) { e.printStackTrace(); return null; } } 和myDB类(简单的包装器,让我将连接/语句代码放入任何项目) public void sendQuery(String […]

无法使用12c jar创建Eclipse数据源到Oracle 12c。 然而11g的作品

当我打开Data Source Explorer窗口并尝试创建新的连接配置文件时,我选择“Oracle”,Oracle Thin Driver,然后将其指向我PC上的以下JAR文件: C:\oracle_12101_64bit\product\12101_64bit\CLIENT_1\jdbc\lib\ojdbc7.jar 提供连接参数后,它使用以下格式导出以下格式的连接URL jdbc:oracle:thin:@host:PORT:SID 但是,我想要它得出的是(注意冒号而不是正斜杠) jdbc:oracle:thin:@host:PORT/SID 我似乎能够使用生成的url连接到11g数据库,但是,不是12c,我不知道这是巧合还是我有不同的问题。 在我的程序中,我使用JPA,它以所需的正斜杠格式从我的配置文件中读取连接URL,并且程序能够连接,如果我改变url使用冒号而连接失败。 如果我无法控制派生连接URL以生成带斜杠而不是冒号的URL,如何在Eclipse的Data Source Explorer视图中创建连接配置文件? 我得到的错误是: ORA-12505, TNS:listener does not currently know of SID given in connect descriptor 更新1 我注意到的一件事是,即使我关联Oracle 12c附带的jdbc7.jar文件,驱动程序仍然显示为“Oracle 11”。 更新2: 以下是我的tnsnames.ora文件中的示例: AFDEDEV.MYCO.COM = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = servername.sys.MYCO.com)(PORT = 2)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = afdedev.MYCO.com) […]

以下Oracle错误意味着什么:无效的列索引

测试一些代码时出现以下错误: SQLException:列索引无效 这到底是什么意思呢? 是否有在线文档解释所有Oracle错误代码和语句?

Java for OS X 2013-004如何影响(中断)Swing应用程序?

似乎Java for OS X 2013-004(Java 1.6.0_51)打破了一些Swing应用程序: https : //discussions.apple.com/message/22279872?tstart = 0#22279872?tstart = 0 http:// www。 mathworks.com/matlabcentral/answers/79489 我的应用加载,但它没有正常重绘。 点击按钮和其他操作实际上似乎有效,但是如果调整框架大小,显示只会更新 – 真的很奇怪。 有谁知道问题可能是什么? 编辑:似乎Apple修复了它: http : //lists.apple.com/archives/java-dev/2013/Jun/msg00055.html

Oracle getConnection运行缓慢

在Java项目中,我使用的是ojdbc6 jar com.oracle ojdbc6 11.2.0.1.0 compile 我运行一天的第一次,dataSource.getConnection()很快。 第二次通常没关系。 接下来的几次大约需要45秒。 之后,需要几分钟。 一旦我有一个给定应用程序运行的FIRST连接,我得到的任何新连接都非常快。 此延迟仅为给定运行获取FIRST连接。 是什么让我的第一次连接变得如此缓慢? 我正在观看netstat并且在成功运行后看不到任何连接。 尝试了几个不同的连接池( DBCP,C3PO )没有运气。 通过源代码进行调试, org.springframework.jdbc.datasource.DataSourceUtils的延迟是100%: Connection con = dataSource.getConnection(); 有任何想法吗? 编辑了更多细节 1)我正在使用连接池(DBCP或C3PO),它可以保存连接以备将来使用。 当我谈到获得新连接时,我的意思是在第一个连接正在使用时……我需要转到数据库并获得新连接。 当然,我可以一遍又一遍地从连接池返回并获得相同的连接。 但同时获得第二个也很快。 2)我不知道我的DB允许我登录多少个连接。 知道这个属性在oracle中的位置吗?

以编程方式检查JDBC中的开放连接

如何在jdbc中为oracle数据库检查打开的连接? 注意: conn.isClosed()不能用于此。

Listagg函数和ORA-01489:字符串连接的结果太长

当我运行以下查询时: Select tm.product_id, listagg(tm.book_id || ‘(‘ || tm.score || ‘)’,’,’) within group (order by tm.product_id) as matches from tl_product_match tm where tm.book_id is not null group by tm.product_id Oracle返回以下错误: ORA-01489: result of string concatenation is too long 我知道失败的原因是listagg函数试图连接大于4000个字符的值,这些值不受支持。 我已经看到了这里描述的替代示例 – http://www.oracle-base.com/articles/misc/string-aggregation-techniques.php但它们都需要使用函数或过程。 是否有一个纯SQL的解决方案,而无需调用函数或存储过程,并且能够使用标准JDBC读取值? 我遇到的另一个困难是我见过的大多数字符串聚合示例都显示了如何按原样读取值的示例。 在我的例子中我首先修改了值(即我正在聚合两列)。