Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / IBATIS + MSSQL + varchar(max) / 12 сообщений из 12, страница 1 из 1
02.02.2012, 13:57:35
    #37643832
boogiman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
IBATIS + MSSQL + varchar(max)
Добрый день всем!
Иcпользуем java 1.7 + Ibatis(2.6.0) на базе MSSQL-2008. Драйвер родной jtds -1.24.
Хотим возвращать output параметр в виде длинной строки varchar(max) - на mssql. Запрос же который генерит джава (через Ибатис) к базе выделяет под переменную всегда
Код: sql
1.
nvarchar(4000) 



Вот как идёт объявление процедуры для Ibatis (мэппинг)

Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMap
    PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN"
    "http://ibatis.apache.org/dtd/sql-map-2.dtd">
<sqlMap namespace="procselvarmax">
  <!-- Параметры для мэпа  -->
	 <parameterMap id="selectmaxmap" class="map">
		<parameter property="id" jdbcType="INTEGER" javaType="int" mode="IN" />
        <parameter property="varmax" jdbcType="LONGVARCHAR" javaType="String" mode="OUT"  />  
    </parameterMap>
  <!-- объявление процедуры -->
 	<procedure id="procselvarmax" parameterMap="selectmaxmap">
 	   { call dbo.select_maxvar (?,?)}
	</procedure>
</sqlMap>



Запрос генерит из java всё равно генерит:
Код: sql
1.
declare @p2 nvarchar(4000)



Как быть, хочу varchar(max)?
...
Рейтинг: 0 / 0
02.02.2012, 14:06:39
    #37643862
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
IBATIS + MSSQL + varchar(max)
boogimanДрайвер родной jtds -1.24.
Это не "родной". Это - "альтернативный".

boogimanКак быть, хочу varchar(max)?
CLOB не канает?
...
Рейтинг: 0 / 0
02.02.2012, 14:08:08
    #37643867
boogiman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
IBATIS + MSSQL + varchar(max)
BlazkowiczboogimanДрайвер родной jtds -1.24.
Это не "родной". Это - "альтернативный".

boogimanКак быть, хочу varchar(max)?
CLOB не канает?

Ну насчёт драйвера, да немного попутал!
А разве CLOB - это не Oracle?
или вы в двоичном виде предлагаете передавать?
...
Рейтинг: 0 / 0
02.02.2012, 14:10:18
    #37643872
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
IBATIS + MSSQL + varchar(max)
boogimanА разве CLOB - это не Oracle?

CLOB это java.sql.Types.CLOB

boogimanили вы в двоичном виде предлагаете передавать?
С BLOB не путаете?
...
Рейтинг: 0 / 0
02.02.2012, 14:13:49
    #37643883
boogiman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
IBATIS + MSSQL + varchar(max)
Попробовал
Код: xml
1.
   <parameter property="varmax" jdbcType="LONGVARCHAR" javaType="CLOB" mode="OUT"  />



Не канает, как надоть?
...
Рейтинг: 0 / 0
02.02.2012, 14:28:06
    #37643914
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
IBATIS + MSSQL + varchar(max)
jdbcType="CLOB"
...
Рейтинг: 0 / 0
02.02.2012, 14:33:09
    #37643932
boogiman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
IBATIS + MSSQL + varchar(max)
Работает но всё равно только 4000


Код: xml
1.
 <parameter property="varmax" jdbcType="CLOB" javaType="java.lang.String" mode="OUT"  />  



Код: sql
1.
declare @p2 nvarchar(4000)
...
Рейтинг: 0 / 0
02.02.2012, 14:42:59
    #37643959
0FD
0FD
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
IBATIS + MSSQL + varchar(max)
...
Рейтинг: 0 / 0
02.02.2012, 14:48:48
    #37643980
boogiman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
IBATIS + MSSQL + varchar(max)
Дык проблема не в Ibatis а в драйвере?
Может драйвер более свежий качнуть?

http://www.microsoft.com/downloads/ru-ru/details.aspx?FamilyID=a737000d-68d0-4531-b65d-da0f2a735707#Overview
...
Рейтинг: 0 / 0
02.02.2012, 14:52:58
    #37643991
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
IBATIS + MSSQL + varchar(max)
boogiman,
а зачем тебе больше 4штук символов?
Код: java
1.
 Clob clob = rs.getClob(1);


______________________________________________
"Сделай настолько просто, насколько это возможно, но не проще". © А. Эйнштейн.
AutoPOI.ru — ГИС-технологии для Oracle
...
Рейтинг: 0 / 0
02.02.2012, 14:55:03
    #37643996
boogiman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
IBATIS + MSSQL + varchar(max)
Petro123boogiman,
а зачем тебе больше 4штук символов?
Код: java
1.
 Clob clob = rs.getClob(1);


______________________________________________
"Сделай настолько просто, насколько это возможно, но не проще". © А. Эйнштейн.
AutoPOI.ru — ГИС-технологии для Oracle


Передавать большой XML между системами компании например , из одной базы брать в другую запихивать- это очень утрировано!
Мы шиной пользуемся для таких передач!
...
Рейтинг: 0 / 0
02.02.2012, 14:59:27
    #37644007
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
IBATIS + MSSQL + varchar(max)
boogiman,
select aaaa for XML
задача нетривиальная, и к ОРМ\iBatis отношения не имеет.
Объём может быть большой, поэтому imho через Clob clob = rs.getClob(1);
Т.е. с минимальными потерями на преобразовании потока.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / IBATIS + MSSQL + varchar(max) / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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