Tag: 存储过程

无法通过使用hibernate的存储过程获取多个Table实体

这是我的存储过程 Create PROCEDURE [dbo].getUserAndEnum AS BEGIN select * from user_master where id =1 select * from enum_master where id = 1 End 用hibernate写的 Session session = HibernateFactory.getSessionFactory().openSession(); Transaction tr = session.beginTransaction(); SQLQuery qr=session.createSQLQuery(“getUserAndEnum”); List list = qr.list(); 在列表中,我只获取用户对象..我的enum_master行的ID为1 数据库中存在ID为1的PS enum_master行 谢谢。

无法检索使用存储过程选择的值

我正在努力寻找记录。 这让我选择使用存储过程在我的数据库中查找现有记录。 当我试图搜索现有数据时,它没有给我我想要的价值。 当我点击搜索按钮时,它不会将值打印到文本字段。 码 private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) { String searchSection = Section_SearchSection_Textfield.getText(); String searchSection_Name = Section_SectionName_TextField.getText(); int sectionID = 0; if (searchSection.isEmpty()) { JOptionPane.showMessageDialog(null, “Please fill up this fields”); } else try (Connection myConn = DBUtil.connect()) { try (CallableStatement myFirstCs = myConn.prepareCall(“{call getSECTION_NAME(?,?)}”)) { myFirstCs.setInt(1, sectionID);// I set the ID for Primary Key […]

如何使用JDBC从存储过程中获取* everything *

使用JDBC处理SQL Server存储过程时,偶尔会遇到两种奇怪的行为: 问题1:我在SQL Server Management Studio(SSMS)中运行存储过程并返回结果集。 但是,当我尝试 try (CallableStatement cs = conn.prepareCall(“{call dbo.TroublesomeSP}”)) { ResultSet rs = cs.executeQuery(); 我得到了例外 com.microsoft.sqlserver.jdbc.SQLServerException:该语句未返回结果集。 问题2:我在SSMS中运行存储过程并引发错误,但是当我使用JDBC来.execute存储过程时,不会抛出任何exception。 为什么会出现这些问题?如何避免这些问题?

java – 在oracle存储过程中传递数组

我有一个Java应用程序访问oracle存储过程。 存储过程的参数包括数组类型。 我喜欢以下…… con = this._getConnection(); Connection narrowdConn = (Connection)WSJdbcUtil.getNativeConnection( (WSJdbcConnection)con ); callable = con.prepareCall(“{call MY_PKG.MY_PROCEDURE(?, ?)}”); ArrayDescriptor arrayDescriptor = ArrayDescriptor.createDescriptor(“VARCHAR2_ARR”, narrowdConn); ARRAY arrayArg1 = new ARRAY(arrayDescriptor, con, docNames); ARRAY arrayArg2 = new ARRAY(arrayDescriptor, con, docTypes); callable.setArray(1, arrayArg1); callable.setArray(2, arrayArg2); callable.execute(); 现在,我得到了这个例外…… java.sql.SQLException: invalid name pattern: MY_PKG.VARCHAR2_ARR VARCHAR2_ARR是一个公共TYPE,在Oracle Package中定义,如下所示: TYPE VARCHAR2_ARR是VARCHAR2的表(50); 并在我的存储过程中使用… PROCEDURE MY_PROCEDURE (V_ARR_ARG1 […]

从JDBC MSSQL获取返回值

我使用Microsoft SQL Server JDBC Driver 2.0通过Java连接到SQL Server(2005)。 如何从存储过程中获取返回值? 我做的事情如下: Connection connection = dataSource.getConnection() CallableStatement proc = connection.prepareCall(“{ call dbo.mySproc() }”); proc.execute(); 我应该使用execute()吗? 的executeQuery()? 的executeUpdate()? 这些似乎都没有默认返回值,但我不确定如何达到它。 编辑1:要清楚,我知道如何调用存储过程。 这个问题具体是关于如何获得返回值(而不是结果集)。 返回值是一个整数,通常在执行没有结果集的查询时生成,或者在SQL中特别声明RETURN 0 。 编辑2:executeUpdate()返回一个int,但是这个int与返回值不同。 此外,OUT参数与返回值不同。

将数组传递给oracle程序

我想从java发送两个数组到oracle存储过程。 第一个数组是字符串数组,第二个是字符数组,我怎么能这样?

如何在java中调用包含用户定义类型的oracle存储过程?

在Oracle DB中: 我有以下存储过程: procedure getInfo ( p_ids IN IDS_TABLE, p_details OUT cursor ) IDS_TABLE类型是: create or replace type IDS_TABLE as table of IDS create or replace type IDS as object ( id1 NUMBER, id2 NUMBER, id3 NUMBER ) 如何在Java中调用getInfo?