Форум программистов, компьютерный форум, киберфорум
Java
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.72/18: Рейтинг темы: голосов - 18, средняя оценка - 4.72
0 / 0 / 0
Регистрация: 23.02.2010
Сообщений: 10

CLOB Через POST

23.02.2010, 23:11. Показов 3510. Ответов 18
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Люди добрые помогите пожайлуста - я не могу разобраться...
Есть форма в которой имеется поле <textarea name='nbody'></textarea>..Форма которая обрабатывает post следующая:
....
XML
1
2
3
<%CLOB nBody;
...
nBody=request.getParameter('nbody');
....
Выходит ошибка:
Java
1
2
   Incompatible type for =. Can't convert java.lang.String to oracle.sql.CLOB.
nBody =request.getParameter('nbody');
Помогите -очень надо!!!!
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
23.02.2010, 23:11
Ответы с готовыми решениями:

Как методом post передать данные не через submit, а через ссылку?
У меня сейчас выводится кнопка с ником, при нажатии на которую выводится подробная информация о пользователе с помощью такого кода. echo...

Передача массива через POST и подгрузка файла через AJAX
Доброго времени суток. Задача такого : есть элемент select в котором можно выбрать несколько вариантов. Далее по нажатию на кнопку, должен...

TUniSQL+CLOB
Всем привет, подскажите есть ли возможность записать значение в базу(Oracle) в поле формата clob с помощью TUniSql(UniDac). Спасибо.

18
mishgun
24.02.2010, 05:54
И праильно делает что ругается request.getParameter('name') возвращает стринг а вы его к CLOB пытаетесь привести
0 / 0 / 0
Регистрация: 23.02.2010
Сообщений: 10
24.02.2010, 07:31  [ТС]
И как мне лучше сделать тогда? - ведь в базу нажо добавлять в виде CLOB?
0
0 / 0 / 0
Регистрация: 23.02.2010
Сообщений: 10
24.02.2010, 07:57  [ТС]
Кто нибудь - подскажите плизз как мне конвертировать из String в CLOB????
Вот как конвертировать из CLOB в STRING я знаю, а обратно не получается... :-(
Из CLOB ->String:
Java
1
2
3
4
    int length=(int)nBody.length();
    char chArr[] = new char[length];
    nBody.getChars(1,length,chArr);
    nBodyString = new String(chArr);
Подскажите - как наоборот сделать?
0
0 / 0 / 4
Регистрация: 14.08.2007
Сообщений: 307
24.02.2010, 11:19
The setBinaryStream and setObject methods may also be used to set a Blob
object as a parameter in a PreparedStatement object. The setAsciiStream,
setCharacterStream, and setObject methods are alternate means of setting a
Clob object as a parameter.

Это выдержка из JDBC 3.0 спецификации , пункт 16.3.2.
Речь в цитате идёт о методах объявленных в интерфейсе PreparedStatement.
0
0 / 0 / 0
Регистрация: 23.02.2010
Сообщений: 10
24.02.2010, 12:02  [ТС]
А можно код - небольшой кусочек?
0
0 / 0 / 4
Регистрация: 14.08.2007
Сообщений: 307
24.02.2010, 12:26
Неужели я недостаточно дал информации ?
Почитай спеку, API.
код, насколько понимаю, примерно такой :
Java
1
2
3
4
5
6
7
8
9
String clobStr = 'veryLongText';
StringReader reader = new StringReader(clobStr);
PreparedStatement statement =
    connection.prepareStatement(
        'INSERT INTO clob_table(id, text) VALUES( ?, ?)');
statement.setLong(1, System.currentTimeMillis());
statement.setCharacterStream(2, reader, clobStr.length());
statement.executeUpdate();
// и так далее ..
Пробуй , и приходи с конкретным вопросом , когда что то не вопьётся
0
0 / 0 / 0
Регистрация: 23.02.2010
Сообщений: 10
24.02.2010, 12:39  [ТС]
Может ты и понятно объяснил, но только для тех, кто пишет на Jave уже приличное время - я только 2 дня :-))).
Вот теперь, когда код есть - я понимаю - спасибо, друг!
0
0 / 0 / 4
Регистрация: 14.08.2007
Сообщений: 307
24.02.2010, 12:49
Если действительно два дня, то имей в виду что кусок который я привёл , это только example - какой метод дёргать чтобы CLOB закачать.
Реально для этой задачи кода будет больше.
Сначала проинициализировать коннекшн...
Поперехватывать все exceptions , напоследок не забыть позакрывать коннекшны , стейтменты , потоки ..
В общем учите матчасть.
Удачи
0
0 / 0 / 0
Регистрация: 23.02.2010
Сообщений: 10
24.02.2010, 13:34  [ТС]
Для работы StringReader () я так понимаю нужно импортировать java.io.* - так?

В том то все и дело, что с этим проблемы нет - и connection есть и catch (Exception ioe){ ...} - Все нормально, а вот с этим долблюсь. Блин вся инфа практически на английском и API тоже....

Ещу трудность в том, что у меня нет Java сервера и проверить я не могу -пишу вслепую - вот в чем проблема, а задание надо сделать как можно скорее :-(...

Еще если не затруднит: сервер пишет предупреждение: Note: sun.tools.javac.Main has been deprecated. - что бы это значило?
0
0 / 0 / 4
Регистрация: 14.08.2007
Сообщений: 307
24.02.2010, 14:02
>>нужно импортировать java.io.* - так?
да

>>вся инфа практически на английском и API тоже....
инфы на русском в сети - море (интернет же есть у тебя). Первое что вспомнилось :
http://www.rost.ru/~sergey/tij2.exe - Брюс Эккель , эту книгу ОБЯЗАН прочитать каждый, кто начинает изучать Javа.
http://www.javagu.ru - хороший ресурс (дока, статьи)
http://www.javable.com/rus - статьи, форум
Бумажных книг тоже море на русском.
А API тебе читать придётся по - любому .. запасайся словарями ..

>>у меня нет Java сервера
http://jakarta.apache.org/tomcat - отличный бесплатный open source контейнер

>>а задание надо сделать как можно скорее :-(...
Вот это мне вообще не понятно. Ты говоришь, что второй день видишь Jаva и тебе нужно СРОЧНО сделать работу используя JSP, JDBC и т.п. ???
Это что тестовое задание ? работа ?
И ты берёшься её делать ??? я в печали ..

>>Note: sun.tools.javac.Main has been deprecated. - что бы это значило?
сорри, как можно такого добиться - не представляю.
0
0 / 0 / 0
Регистрация: 23.02.2010
Сообщений: 10
24.02.2010, 14:24  [ТС]
Да какая работа млин, - ты что..!!! 2 дня на Jave:-))) Это в институте задали... - типа курсовика, а лекции такие, что легче API на английском читать :-)

Note: sun.tools.javac.Main has been deprecated. - не пойму отчего это...
0
mishgun
25.02.2010, 08:38
Покажите пожалста как вы компиллирутете? И код ваш тоже плизз.Похоже что в коде налеплено то на что компиллятор не то что бы ругается но ему это не нравится потому что используются методы или переменные которые признаны небезопасными или не имеющимим значимости.
Ой елки Хеннеси Привиледж с Киндзмараули мешать низззззззяяяяяяяяяя совсем плохой блин буквы вставляю вобщем не те ЛОЛ))))))))))))
mishgun
25.02.2010, 08:41
И ваще я чего то не въехал а каким образом происходит ваще компилляция вашего объекта если у Вас нету сервера?ведь javax.servlet.*; в общем пакете нету, то есть по идее ваш объект и скомпиллироваться то не может
0 / 0 / 0
Регистрация: 23.02.2010
Сообщений: 10
25.02.2010, 09:59  [ТС]
>>Покажите пожалста как вы компиллирутете? И код ваш тоже
>>плизз.Похоже что в коде налеплено то на что компиллятор не то что
>>бы ругается но ему это не нравится потому что используются методы
>>или переменные которые признаны небезопасными или не имеющимим значимости.

Вот код:

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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
<%@ page contentType='text/html; charset=Windows-1251'%>
<%@ page import='java.sql.*'%>
<%@ page import='java.io.*'%>
<%@ page import='oracle.jdbc.driver.*' %>
<%@ page import='oracle.sql.*' %>
<%
String nId=new String('0');
String nType_Id=new String('');
String nName=new String('');        
String nWriterName=new String('');
String nWriterDesc=new String('');
String nState=new String('');
String nBodyString=new String('');
StringBuffer sb;
%>
 
<HTML>
<head>
    <META HTTP-EQUIV='Content-type' CONTENT='text/html; charset=Windows-1251'>
<%
try{
%>
<%@ include file='../drv.inc'%>
<%
nId=request.getParameter('nId');
nType_Id=request.getParameter('nType_Id');
nName=request.getParameter('nName');
nBodyString =request.getParameter('nBody');
nWriterName =request.getParameter('nWriterName');
nWriterDesc =request.getParameter('nWriterDesc');
 
if ((nId!=null) && (nType_Id!=null) && (nName!=null) && (nBodyString!=null) && (nWriterName!=null)&&( nWriterDesc !=null))
        {
StringReader reader = new StringReader(nBodyString);
sb=new StringBuffer('INSERT INTO table (Type_Id, Name, WriterName, WriterDesc, State, Body) VALUES (?,?,?,?,?,?)');
PreparedStatement ptmt =conn.prepareStatement (sb.toString());
ptmt.setString(1, nType_Id);
ptmt.setString(2, nName);
ptmt.setString(3, nWriterName);
ptmt.setString(4, nWriterDesc);
ptmt.setString(5, nId);
ptmt.setCharacterStream(6, reader, nBodyString.length());
ptmt.executeUpdate();
ptmt.close();
out.println('<div align=center><font color=red>Данные добавлены в базу!</font></div>');
        }
}
catch (Exception ioe){ 
out.println('<div align=center><font color=red>Error - </font></div>'+ioe.toString());}
%>
</BODY>
</HTML>
>>И ваще я чего то не въехал а каким образом происходит ваще
>>компилляция вашего объекта если у Вас нету сервера?ведь
>>javax.servlet.*; в общем пакете нету, то есть по идее ваш объект и
>>скомпиллироваться то не может.

А я не компилирую - я пишу, потом отвожу в одно место - там проверяют и выдают мне отчет в виде распечатки...
0
mishgun
25.02.2010, 23:01
Это с сайта Томката 4.1.2
Deprecated Entry Point Warning - When compiling JSP pages on a JDK 1.4 system, you will see the following warning message when your page includes Java compilation errors: Note: sun.tools.javac.Main has been deprecated. This is because the JSP page compiler currently uses a deprecated entry point to the Java compiler. This warning can be ignored.
В общем смысл такой что этот warning можно проигнорировать и не думать проблема не в коде а в совместимости Томката и JDK1.4
0 / 0 / 0
Регистрация: 23.02.2010
Сообщений: 10
26.02.2010, 13:28  [ТС]
Спасибо огромное. А то я уже замучался... я на ПХП вообще-то пишу, и для меня немного непревычно эти странные и непонятные ошибки. В PHP если есть ошибка, то сразу понятно где, а здесь - без бутылки не разберешь :-). Но вообще язык не очень сложный, наверное только первое время сложновато, а так если привыкнуть...
0
mishgun
26.02.2010, 21:27
Вообще то если в коде на Джаве есть ошибка то вы тоже ее получите.Ето будет или ошибка в коде синтаксическая тогда вы ее получите при компилляции кода(страницы) или в логике тогда вы ее получите сразу при работе проги или позже когда ошибка в логике появится а появляются они не всегда сразу
0 / 0 / 0
Регистрация: 23.02.2010
Сообщений: 10
26.02.2010, 22:12  [ТС]
Это я уже понял - когда мне возвращают распечатку страницы с ошибками :-)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
26.02.2010, 22:12
Помогаю со студенческими работами здесь

DBLink и Clob
Есть фнк которая возвращает clob или xmltype необходимо вызвать ее через dblink как это лучше сделать? Во временную таблицу не...

тип clob
Привет кодеры! В общем вопрос такой. У меня есть поле тип которого VARCHAR2(4000). Но 4000 маловато будет. Мне нужна возможность вмещать...

CLOB + REPLACE - возможно ли?
Oracle уверяет что CLOB с replace работает отлично :) и это действительно так (почти)! Но если третий параметр будет больше 32к символов,...

Как считать Clob из БД ?
База - Oracle, в clob'е лежит текст в win-1251, при вынимании приложение падает с ошибкой: java.sql.SQLException: Fail to convert...

BLOB, CLOB в PL/SQL Developer
Доброго времени суток. Возникла такая проблемка. Есть процедура с входными параметрами типа BLOB. Пытаюсь её протестить в PL/SQL...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Новые блоги и статьи
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия SDL 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual. . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru