2014-02-26 2 views
1

Я хочу вызвать хранимую процедуру в SQL Server 2008 из Java-кода. Хранимая процедура принимает определяемый пользователем тип таблицы как параметр (в основном массив) . Можете ли вы дать мне синтаксис Java для вызова хранимой процедуры и передать массив в качестве входного параметраВызов хранимой процедуры с параметром ввода типа таблицы в SQL Server 2008

+1

Просьба указать пример того, как вы это называете в T-SQL. –

+0

declare @list countarray Вставить значения @list (n) ('Resistivity'), ('Porosity'), ('Mud') exec arrayex @ list // вызов процедуры arrayex – prasanna

+0

См. Этот http: // blogs. msdn.com/b/jdbcteam/archive/2012/04/03/how-would-you-use-table-valued-parameters-tvp.aspx и это http://www.sommarskog.se/arrays-in-sql -2008.html для некоторых соображений. –

ответ

0

Я не могу четко видеть вашу хранимую процедуру, но здесь является передающим массивом на примере для любого JDBC.

try { 
    Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); 
    Connection con = DriverManager.getConnection("jdbc:sqlserver://yourdb.yourco.com:12345;databaseName=MyDataBase;", "user", "password"); 
    CallableStatement st = con.prepareCall("{call arrayex(?)}"); 
    Array arr = con.createArrayOf("varchar", new String[]{"ABC","DEF"}); 
    st.setArray(1, arr); 
    st.execute(); 
    st.close(); 
    con.close(); 
    } catch (Exception exp) { 
    System.out.println("Error " + exp.getMessage()); 
    exp.printStackTrace(); 
    } 
+0

Я становлюсь ниже error java.sql.SQLFeatureNotSupportedException: эта операция не поддерживается. хранимая процедура принимает параметр tablevalued, поскольку массивы не поддерживаются в pl/sql – prasanna

Смежные вопросы