powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Вставка CSV файла в поле типа CLOB таблицы Oracle
14 сообщений из 14, страница 1 из 1
Вставка CSV файла в поле типа CLOB таблицы Oracle
    #38445384
Фотография May12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ребят, здравствуйте. Помогите залить CSV файл в таблицу Оракл в поле типа clob. Мне на java надо. Почитала форум ( 1 , 11805350 ), но решения не смогла найти. Вот "мой" код:

Код: 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.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
import java.util.Date;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.sql.*;

 
public class uploadFile {
 
      /**
      * @param args
      * @throws IllegalAccessException
       * @throws InstantiationException
       * @throws ClassNotFoundException
       * @throws SQLException
       */
     
      public static final String      dbUser              = "MAYA";
      public static final String      dbPassword          = "pass";
     
     
      public static void main(String[] args) throws IllegalAccessException, InstantiationException, ClassNotFoundException, SQLException, FileNotFoundException {
            // TODO Auto-generated method stub
 
            // метод который подключается к базе
           
         
           
              try {
                   
                     Class.forName ("oracle.jdbc.OracleDriver");
                } catch (ClassNotFoundException e) {
                    e.printStackTrace();
                }
           
        String connectionURL = "jdbc:oracle:thin:@//IP:1521/MAYASCHEMA";
       
        Connection  conn = DriverManager.getConnection(connectionURL, dbUser, dbPassword);
         
          conn.setAutoCommit(true);
          System.out.println("Connected.\n");
          //Потестируем 
          Statement stmt = conn.createStatement();
          ResultSet   rset = null;
          String sqlText = "Select sysdate from dual";
          rset = stmt.executeQuery(sqlText);
 
        if (rset.next()) {
                            Date currentDate = rset.getDate(1); // get first column returned
                            System.out.println("Current Date from Oracle is : "+currentDate);
                  }
                 
                          rset.close();
                   stmt.close();
               
            //Попробую загрузить CSV файл в clob поле.
            File сlob = new File("D:\\Docs\\input_test.csv");
            PreparedStatement pstmt = conn.prepareStatement("INSERT INTO csv_files (id, document_name, csv_document, timestamp) " +
                     "   VALUES(2, '" + сlob.getName() + "', ?, SYSDATE)");
             
              FileInputStream in = new FileInputStream(сlob);
               
              ///Дальше не могу =((
              //?????   
 
             conn.commit();
                   
                    
                    
                /**
                 * Close Oracle database connection.
                 * @throws java.sql.SQLException
                 */
                   
                  
               try {
                        conn.close();
                        System.out.println("Disconnected.\n");
                    } catch (SQLException e) {
                        System.out.println("Caught SQL Exception: (Closing Connection).");
                        e.printStackTrace();
                        if (conn != null) {
                            try {
                                conn.rollback();
                            } catch (SQLException e2) {
                                System.out.println("Caught SQL (Rollback Failed) Exception.");
                                e2.printStackTrace();
                            }
                        }
                        throw e;
                    }
 
                }
           
           
      }



Заранее добра вам. =))
...
Рейтинг: 0 / 0
Вставка CSV файла в поле типа CLOB таблицы Oracle
    #38445397
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Вставка CSV файла в поле типа CLOB таблицы Oracle
    #38445418
Фотография Denis Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
May12Помогите залить CSV файл в таблицу Оракл в поле типа clob
Посмотри: http://www.sql.ru/faq/faq_topic.aspx?fid=469
...
Рейтинг: 0 / 0
Вставка CSV файла в поле типа CLOB таблицы Oracle
    #38445474
Фотография May12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Denis Popov, Blazkowicz, спасибо, но уже читано перечитано. =((
...
Рейтинг: 0 / 0
Вставка CSV файла в поле типа CLOB таблицы Oracle
    #38445508
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
May12Denis Popov, Blazkowicz, спасибо, но уже читано перечитано. =((
А так по коду и не скажешь.
...
Рейтинг: 0 / 0
Вставка CSV файла в поле типа CLOB таблицы Oracle
    #38445544
Фотография May12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz, читано, но не осмысленно. не скрою. просто много вариантов и в голове каша. надеюсь вы понимаете как это бывает.
...
Рейтинг: 0 / 0
Вставка CSV файла в поле типа CLOB таблицы Oracle
    #38445550
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот это где?
pstmt.setAsciiStream(1, in);
...
Рейтинг: 0 / 0
Вставка CSV файла в поле типа CLOB таблицы Oracle
    #38445565
Фотография May12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz, думаю, т.е. читаю. Не бросайте меня.
...
Рейтинг: 0 / 0
Вставка CSV файла в поле типа CLOB таблицы Oracle
    #38445579
Фотография May12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
May12,

Код: java
1.
2.
3.
4.
pstmt.setAsciiStream(3, in);
///Дальше не могу
 //?????    
pstmt.execute();


Исключение:
Код: plaintext
Exception in thread "main" java.lang.AbstractMethodError: oracle.jdbc.driver.T4CPreparedStatement.setAsciiStream(ILjava/io/InputStream;)V
Безнадёжна?
...
Рейтинг: 0 / 0
Вставка CSV файла в поле типа CLOB таблицы Oracle
    #38445589
Фотография May12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz, oracle 10.2, JRE 1.7.0, jdbc14.jar.
...
Рейтинг: 0 / 0
Вставка CSV файла в поле типа CLOB таблицы Oracle
    #38445591
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Окай. Тогда
pstmt.setCharacterStream(1, new InputStreamReader(in));
...
Рейтинг: 0 / 0
Вставка CSV файла в поле типа CLOB таблицы Oracle
    #38445601
Фотография May12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz,
аналогичное исключение. =((
...
Рейтинг: 0 / 0
Вставка CSV файла в поле типа CLOB таблицы Oracle
    #38445613
Фотография May12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz, получилось:
Код: java
1.
2.
  pstmt.setCharacterStream(1, new InputStreamReader(in), (int) сlob.length());
  pstmt.execute();



Добра Вам.
...
Рейтинг: 0 / 0
Вставка CSV файла в поле типа CLOB таблицы Oracle
    #38445614
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Драйвер старый, вероятно. А если так?

pstmt.setCharacterStream(1, new InputStreamReader(in), clob.length());
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Вставка CSV файла в поле типа CLOB таблицы Oracle
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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