Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Тест JDBC не работает, что я делаю не так? / 14 сообщений из 14, страница 1 из 1
18.03.2005, 12:26:52
    #32967884
ursus_rus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тест JDBC не работает, что я делаю не так?
Доброго времени суток!

Хотел проверить работу JDBC

Что я делаю не так?
Oracle10g,JDK 1.4.2, JDBC driver version is 10.1.0.3.0

Когда пытаюсь выполнить на сервере этот код:

import java.sql.*;
public class test{
public static void main(String[] args) {
Connection conn;
try {
conn = DriverManager.getConnection("jdbc:default:connection:");
Statement stmt = conn.createStatement();
ResultSet rs;
rs = stmt.executeQuery("SELECT 'This is the test.' FROM dual");
while(rs.next()){
System.out.println(rs.getString(1));
}
}
catch (SQLException e) {
e.printStackTrace();
}
}
}

Получаю слудующие сообщения:

java.sql.SQLException: Недопустимый индекс столбца
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:158)

at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:206)

at oracle.jdbc.driver.OracleResultSetImpl.getString(Native Method)

Кто-нибудь может мне помочь? Что я делаю не верно?
...
Рейтинг: 0 / 0
18.03.2005, 12:50:36
    #32967971
Denis Popov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тест JDBC не работает, что я делаю не так?
А где ты выполняешь этот код, на клиенте или данный класс загружен в базу? Если первое, то почему используется "jdbc:default:connection:", если второе, то как ты его вызываешь?
...
Рейтинг: 0 / 0
18.03.2005, 13:29:25
    #32968110
ursus_rus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тест JDBC не работает, что я делаю не так?
Этот код выполняется на сервере.
возможно, не совсем правильно я завернул в PL/SQL спецификацию,
но на клиенте он работает - на сервере нет

CREATE OR REPLACE PROCEDURE TEST
IS LANGUAGE JAVA NAME 'test_.test()';

create or replace and compile java source named test as
public class test_
{
public static void test() {
test.main(null);
}
}

create or replace and compile java source named test as
import java.sql.*;
public class test {
...
}

На клиенте следующий код выполняется (с небольшими правками соединения) нормально

import java.sql.*;
import oracle.jdbc.pool.OracleDataSource;


public class test{
public static void main(String[] args) {
try {
//conn = DriverManager.getConnection("jdbc:default:connection:");
OracleDataSource ods = new OracleDataSource();
ods.setURL("jdbc:oracle:thin:user/passwd@localhost:1521:sid");
Connection conn = ods.getConnection();
Statement stmt = conn.createStatement();
ResultSet rs;
rs = stmt.executeQuery("SELECT 'This is the test.' FROM dual");
while(rs.next()){
System.out.println(rs.getString(1));
}
}
catch (SQLException e) {
e.printStackTrace();
}
}
}

В чем проблема - не могу понять?
...
Рейтинг: 0 / 0
18.03.2005, 13:32:05
    #32968123
паки-паки
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тест JDBC не работает, что я делаю не так?
товарищ ursus_rus, а можно тебя попросить оформлять код тэгами [ SRC][/ SRC]

--
а?
...
Рейтинг: 0 / 0
18.03.2005, 13:38:14
    #32968149
ursus_rus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тест JDBC не работает, что я делаю не так?
сори за нечитабельность, буду исправляться по ходу
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
create or replace and compile java source named test as
 import  java.sql.*;

 public   class  test {
     public   static   void  main(String[] args) {
        Connection conn;
         try  {
            conn = DriverManager.getConnection("jdbc:default:connection:");
            Statement stmt = conn.createStatement();
            ResultSet rs;
            rs = stmt.executeQuery("SELECT 'This is the test.' FROM dual");
             while (rs.next()){
                System.out.println(rs.getString( 1 ));
            }
        }
         catch  (SQLException e) {
            e.printStackTrace();
            }
        }
}
...
Рейтинг: 0 / 0
18.03.2005, 13:49:49
    #32968188
Denis Popov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тест JDBC не работает, что я делаю не так?
Странно, на Oracle9.2.0.6 все отрабатывает, но попробуй указывать имя поля в Resultset'е:

Код: plaintext
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.
create or replace and compile java source named "Test" as
 import  java.sql.*;
 public   class  Test {
   public   static   void  testConnect() 
     throws  SQLException {
    Connection con =  null ;
    Statement st =  null ;
    ResultSet rs =  null ;
     try  {
      con = DriverManager.getConnection("jdbc:default:connection:");
      st = con.createStatement();
      rs = st.executeQuery("select 'This is the test.' code from dual");
       while (rs.next()){
        System.out.println(rs.getString("code"));
      }
    }  finally  {
       if  (rs !=  null ) { rs.close(); }
       if  (st !=  null ) { st.close(); }
       if  (con !=  null ) { con.close(); }
    }
  }
}
/
create or replace procedure test is
  language java name 'Test.testConnect()';
/

exec dbms_java.set_output( 20000 );
exec test;

...
Рейтинг: 0 / 0
18.03.2005, 14:26:30
    #32968299
ursus_rus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тест JDBC не работает, что я делаю не так?
попробовал с именем столбца
Код: plaintext
1.
2.
3.
4.
            rs = stmt.executeQuery("SELECT 'This is the test.' as this_is FROM dual");
             while (rs.next()){
                System.out.println(rs.getString("this_is"));
            }

ошибка другая:
java.sql.SQLException: Отсутствуют определения
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:158)

at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:206)

at oracle.jdbc.driver.OracleResultSetImpl.getString(Native Method)

at oracle.jdbc.driver.OracleResultSet.getString(OracleResultSet.java:1559)

at test.main(test:16)

at test_.test(TEST:6)
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
03.08.2007, 12:01:21
    #34703590
ффф
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тест JDBC не работает, что я делаю не так?
поменяй драйвер
...
Рейтинг: 0 / 0
03.08.2007, 12:15:17
    #34703635
Хрюхрюшкин.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тест JDBC не работает, что я делаю не так?
При запуске на СУБД не нужно использовать JDBC. Используйте native-sql.
...
Рейтинг: 0 / 0
03.08.2007, 12:31:59
    #34703719
Timm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тест JDBC не работает, что я делаю не так?
Некрофилы.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
13.06.2012, 16:31:35
    #37836601
May12
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тест JDBC не работает, что я делаю не так?
Ребят, у меня аналогичная проблема:

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
	DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
					String url = "jdbc:oracle:thin:*****/****@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=*********)(PORT=1521)))(CONNECT_DATA=(SID=***)(SERVER=DEDICATED)))";
					
				    
			    Connection conn = DriverManager.getConnection(url);
		            Statement stmt = conn.createStatement();
		            ResultSet rs;
		            
		            
		            rs = stmt.executeQuery("SELECT trim(E_STATUS) AS E_STATUS from MAYA.MY_IQ where ID = (select max(ID) from MAYA.MY_IQ)");
		            String Status = rs.getString(0); //единицу тоже пробовала.
//		            if(rs.next()){
		            	System.out.println(Status);
//		            	}
		                      
		            
		            rs.close();    
		            stmt.close();  
		            conn.close();




Ну и не тот результат который нужен:
авторGot an exception!
Недопустимый индекс столбца

Подскажите, что делаю не так.
...
Рейтинг: 0 / 0
13.06.2012, 16:43:04
    #37836633
Basil A. Sidorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тест JDBC не работает, что я делаю не так?
May12Подскажите, что делаю не так.Скармливаете ваш запрос SQLPlus-у и смотрите его реакцию.

P.S. Указывать псевдоним, совпадающий с именем столбца - это сильно.
...
Рейтинг: 0 / 0
13.06.2012, 16:49:48
    #37836644
May12
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тест JDBC не работает, что я делаю не так?
Basil A. SidorovСкармливаете ваш запрос SQLPlus-у и смотрите его реакцию.
вернул: READY


Basil A. SidorovУказывать псевдоним, совпадающий с именем столбца - это сильно.
это случайно! от прошлых экспериментов осталось.
...
Рейтинг: 0 / 0
13.06.2012, 17:14:00
    #37836699
May12
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тест JDBC не работает, что я делаю не так?
справилась, код:

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
	Connection conn = DriverManager.getConnection(url);
		            Statement stmt = conn.createStatement();
		            
		            ResultSet rs = stmt.executeQuery("SELECT trim(E_STATUS) AS E_STATUS from MAYA.MY_IQ where ID = (select max(ID) from MAYA.MY_IQ)");
		            
		            while (rs.next()){
		            
		            	System.out.println(rs.getString("E_STATUS"));
		            	}
		                      
		            
		            rs.close();    
		            stmt.close();  
		            conn.close();
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Тест JDBC не работает, что я делаю не так? / 14 сообщений из 14, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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