powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Тест JDBC не работает, что я делаю не так?
14 сообщений из 14, страница 1 из 1
Тест JDBC не работает, что я делаю не так?
    #32967884
ursus_rus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток!

Хотел проверить работу 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
Тест JDBC не работает, что я делаю не так?
    #32967971
Фотография Denis Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А где ты выполняешь этот код, на клиенте или данный класс загружен в базу? Если первое, то почему используется "jdbc:default:connection:", если второе, то как ты его вызываешь?
...
Рейтинг: 0 / 0
Тест JDBC не работает, что я делаю не так?
    #32968110
ursus_rus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Этот код выполняется на сервере.
возможно, не совсем правильно я завернул в 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
Тест JDBC не работает, что я делаю не так?
    #32968123
паки-паки
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
товарищ ursus_rus, а можно тебя попросить оформлять код тэгами [ SRC][/ SRC]

--
а?
...
Рейтинг: 0 / 0
Тест JDBC не работает, что я делаю не так?
    #32968149
ursus_rus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
сори за нечитабельность, буду исправляться по ходу
Код: 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
Тест JDBC не работает, что я делаю не так?
    #32968188
Фотография Denis Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Странно, на 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
Тест JDBC не работает, что я делаю не так?
    #32968299
ursus_rus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
попробовал с именем столбца
Код: 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
Период между сообщениями больше года.
Тест JDBC не работает, что я делаю не так?
    #34703590
ффф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
поменяй драйвер
...
Рейтинг: 0 / 0
Тест JDBC не работает, что я делаю не так?
    #34703635
Фотография Хрюхрюшкин.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
При запуске на СУБД не нужно использовать JDBC. Используйте native-sql.
...
Рейтинг: 0 / 0
Тест JDBC не работает, что я делаю не так?
    #34703719
Фотография Timm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Некрофилы.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Тест JDBC не работает, что я делаю не так?
    #37836601
Фотография May12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ребят, у меня аналогичная проблема:

Код: 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
Тест JDBC не работает, что я делаю не так?
    #37836633
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
May12Подскажите, что делаю не так.Скармливаете ваш запрос SQLPlus-у и смотрите его реакцию.

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


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

Код: 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
14 сообщений из 14, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Тест JDBC не работает, что я делаю не так?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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