Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Вставка CSV файла в поле типа CLOB таблицы Oracle / 14 сообщений из 14, страница 1 из 1
29.10.2013, 16:20:42
    #38445384
May12
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вставка CSV файла в поле типа CLOB таблицы Oracle
Ребят, здравствуйте. Помогите залить 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
29.10.2013, 16:26:58
    #38445397
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вставка CSV файла в поле типа CLOB таблицы Oracle
...
Рейтинг: 0 / 0
29.10.2013, 16:35:02
    #38445418
Denis Popov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вставка CSV файла в поле типа CLOB таблицы Oracle
May12Помогите залить CSV файл в таблицу Оракл в поле типа clob
Посмотри: http://www.sql.ru/faq/faq_topic.aspx?fid=469
...
Рейтинг: 0 / 0
29.10.2013, 16:58:21
    #38445474
May12
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вставка CSV файла в поле типа CLOB таблицы Oracle
Denis Popov, Blazkowicz, спасибо, но уже читано перечитано. =((
...
Рейтинг: 0 / 0
29.10.2013, 17:08:17
    #38445508
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вставка CSV файла в поле типа CLOB таблицы Oracle
May12Denis Popov, Blazkowicz, спасибо, но уже читано перечитано. =((
А так по коду и не скажешь.
...
Рейтинг: 0 / 0
29.10.2013, 17:21:31
    #38445544
May12
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вставка CSV файла в поле типа CLOB таблицы Oracle
Blazkowicz, читано, но не осмысленно. не скрою. просто много вариантов и в голове каша. надеюсь вы понимаете как это бывает.
...
Рейтинг: 0 / 0
29.10.2013, 17:23:43
    #38445550
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вставка CSV файла в поле типа CLOB таблицы Oracle
Вот это где?
pstmt.setAsciiStream(1, in);
...
Рейтинг: 0 / 0
29.10.2013, 17:30:50
    #38445565
May12
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вставка CSV файла в поле типа CLOB таблицы Oracle
Blazkowicz, думаю, т.е. читаю. Не бросайте меня.
...
Рейтинг: 0 / 0
29.10.2013, 17:37:07
    #38445579
May12
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вставка CSV файла в поле типа CLOB таблицы Oracle
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
29.10.2013, 17:41:43
    #38445589
May12
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вставка CSV файла в поле типа CLOB таблицы Oracle
Blazkowicz, oracle 10.2, JRE 1.7.0, jdbc14.jar.
...
Рейтинг: 0 / 0
29.10.2013, 17:42:12
    #38445591
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вставка CSV файла в поле типа CLOB таблицы Oracle
Окай. Тогда
pstmt.setCharacterStream(1, new InputStreamReader(in));
...
Рейтинг: 0 / 0
29.10.2013, 17:45:32
    #38445601
May12
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вставка CSV файла в поле типа CLOB таблицы Oracle
Blazkowicz,
аналогичное исключение. =((
...
Рейтинг: 0 / 0
29.10.2013, 17:51:59
    #38445613
May12
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вставка CSV файла в поле типа CLOB таблицы Oracle
Blazkowicz, получилось:
Код: java
1.
2.
  pstmt.setCharacterStream(1, new InputStreamReader(in), (int) сlob.length());
  pstmt.execute();



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

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


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