Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Java + XMLType / 7 сообщений из 7, страница 1 из 1
18.07.2012, 17:07:19
    #37884233
rsltr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java + XMLType
работает:

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
declare
result xmltype;
begin
result := account.get_t(xmltype(
                                  
                                  '<pars><par name=''fls_id''>11811</par>
                                  <par name=''period''>18.07.2012</par>
                                  <par name=''sd''></par><par name=''fd''></par>
                                  <par name=''zayavitel''>289249</par>
                                  <par name=''manList''><val>289249</val><val>289248</val></par>
                                  <par name=''docList''><val sd=''08.09.2006'' num=''880378;880377--сер.77 АА''/></par>
                                  <par name=''currDocZayav''>false</par>
                                  <par name=''jointByFlat''>false</par>
                                  <par name=''onlyCurMan''>false</par>
                                  <par name=''regNo''>б/н</par><par name=''currWithoutDoc''>false</par>
                                  <par name=''flat_id''>1420508</par>
                                  <par name=''house_id''>1365354</par></pars>')
                                  ,64735);                
end;



переношу в Яву и не работает:
...
Рейтинг: 0 / 0
18.07.2012, 17:09:33
    #37884243
rsltr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java + XMLType
rsltr,

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
public String getEGDfromXMLforWService (String xmlType) throws Exception {
    	
    	Connection c = null;
    	CallableStatement st = null;
    	ResultSet rs = null;
        XMLType xml = null;
        XMLType xml2 = null;
        BigDecimal userId = security.getCurrentUserId();
    	
        try {
        	c = Cleaner.getConnection(dataSource, sessionContext,"AccountInfoBean..");
        	st = c.prepareCall("begin ?:=account.get_t(?,?); end;");
        	st.registerOutParameter (1, OracleTypes.OPAQUE,"XMLTYPE");
        	st.setObject(2, xmlType);
        	st.setBigDecimal(3, userId);
        	st.execute(); <-- здесь на выполнение выходит NullPointerException
        	
        	xml = (XMLType) st.getObject(1);
             
        } catch (Exception e) {
        	e.printStackTrace();        	
        } finally {
        	Cleaner.close(c, st, rs);
        }
    	return xml.getStringVal();
    	
    }



куда копнуть?
...
Рейтинг: 0 / 0
18.07.2012, 17:12:23
    #37884250
rsltr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java + XMLType
rsltrrsltr,

Код: java
1.
        	st = c.prepareCall("begin ?:=account.get_t(?,xmltype(?)); end;");



куда копнуть?
...
Рейтинг: 0 / 0
18.07.2012, 17:15:24
    #37884258
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java + XMLType
Смущает
begin ?:=
это же не совсем параметр
...
Рейтинг: 0 / 0
18.07.2012, 17:18:32
    #37884262
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java + XMLType
что-то типа
{?= call account.get_t(xmltype(?, ?)}
...
Рейтинг: 0 / 0
18.07.2012, 18:20:11
    #37884332
Denis Popov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java + XMLType
rsltrкуда копнуть?
Попробуй так:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
Connection con;
...
Statement st = con.createStatement();

st.execute("create or replace function GET_XML(p_xml XmlType) return XmlType as begin return p_xml; end;");

XMLType xml = XMLType.createXML(
  con,
  "<pars>\n" +
  "  <par name='fls_id'>11811</par>\n" +
  "  <par name='period'>18.07.2012</par>\n" +
  "  <par name='sd'></par><par name='fd'></par>\n" +
  "  <par name='zayavitel'>289249</par>\n" +
  "  <par name='manList'><val>289249</val><val>289248</val></par>\n" +
  "  <par name='docList'><val sd='08.09.2006' num='880378;880377--сер.77 АА'/></par>\n" +
  "  <par name='currDocZayav'>false</par>\n" +
  "  <par name='jointByFlat'>false</par>\n" +
  "  <par name='onlyCurMan'>false</par>\n" +
  "  <par name='regNo'>б/н</par><par name='currWithoutDoc'>false</par>\n" +
  "  <par name='flat_id'>1420508</par>\n" +
  "  <par name='house_id'>1365354</par>\n" +
  "</pars>"
);
OracleCallableStatement cst = (OracleCallableStatement) con.prepareCall("{? = call GET_XML(?)}");
cst.registerOutParameter(1, OracleTypes.OPAQUE, "XMLTYPE");
cst.setOPAQUE(2, xml);
cst.execute();
OPAQUE opaque = cst.getOPAQUE(1);
xml = XMLType.createXML(opaque);

System.out.println(xml.getStringVal());
cst.close();
st.close();
...
Рейтинг: 0 / 0
05.04.2013, 16:40:21
    #38214733
Atum1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java + XMLType
rsltr,
Код: java
1.
 stmt.registerOutParameter (2, OracleTypes.OPAQUE,"SYS.XMLTYPE");


"SYS.XMLTYPE"
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Java + XMLType / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]