powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / создание хранимой процедуры...
9 сообщений из 9, страница 1 из 1
создание хранимой процедуры...
    #32282939
Lefan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Приветсвую всех!!!

у мня проблема, не получается процедуру нарисовать, на Java

1. сделал, класс:
Код: 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.
 /**
 * JDBC Хранимая процедура SAV.PROB3
 */ 
package sav;

import java.sql.*;                   // Классы JDBC

public class Prob
 123 ;
    public static void printTable (String name, ResultSet[] rs1 ) 
                                        throws SQLException, Exception
     123 ;
        // Получить соединение с базой данных
        Connection con = DriverManager.getConnection( "jdbc:default:connection" );
        PreparedStatement stmt = null;
        boolean bFlag;
        String sql;

        sql =  "SELECT * from sav."  + name;
        stmt = con.prepareStatement( sql );
        bFlag = stmt.execute();
        rs1[ 0 ] = stmt.getResultSet();
     125 ;
 125 ;


2. скомпилил, и поместил в jar... пакет sav
Код: plaintext
jar cf sav.jar sav/


3. Выполнил инсталяцию...
Код: plaintext
Call sqlj.install_jar ('file:///C:/DB2/SAV.jar', 'SAV',  0 )


4. Обновили...
Код: plaintext
Call sqlj.refresh_classes( )


5. Апдейт...
Код: plaintext
1.
Call sqlj.updatejarinfo ('SAV', 'prob.PROB3', '???')
                                                      чего там писать?

3 - 5 шаг подглядел у "Центра разработки DB2", но он у мня валится на 5 шаге говорит:
автор писал:SQL0804N Недопустимые параметры программы для текущего
требования. Код причины "109
". Если неверны переменная
хоста или SQLVAR в SQLDA, тогда: номер переменной хоста/SQLVAR
= "", SQLTYPE = "", SQLLEN = "", тип переменной хоста/SQLVAR =
"".

Объяснение:

Ошибка при обработке текущего требования.

o Список параметров вызова, созданный прекомпилятором, может
оказаться неверным, если разработчик программы изменяет вывод
прекомпилятора или переписывает список параметров вызова
другим способом.

o SQLDA или переменные хоста в операторе SQL неверны.

o Требование не поддерживается или не соответствует
контексту.

Коды причины имеют следующие значения:
...

109 Для текущего оператора SQL ожидалось определенное число
переменных хоста/SQLVARS.
...

В операторах SQL с переменными хоста найти неверную переменную
хоста по указанному номеру. Номер переменной отсчитывается от
начала оператора (или подоператора в случае составного SQL). Для
операторов, использующих SQLDA, указанный номер SQLVAR
используется для обнаружения неверной переменной SQLVAR. Для
входной SQLDA считаются только входные переменные или SQLVAR;
аналогично для выходной. Имейте в виду, что нумерация начинается
с 1.

Оператор невозможно обработать.

Действия пользователя:

Исправьте все замеченные в программе ошибки. Обратите внимание
на то, что программист не должен изменять выходные данные
прекомпилятора.

пользователи Ожидаемое значение: Если вы получили код причины
102, укажите поддерживаемый тип данных и выполните программу
снова.

sqlcode : -804

sqlstate : 07002

пропускаю 5 шаг...

6. Создаю процедуру...
Код: plaintext
1.
2.
3.
4.
CREATE PROCEDURE sav.PrintTab(IN name CHAR[ 100 ],
                 OUT res CHAR[ 255 ])
EXTERNAL NAME 'SAV:Prob.PrintTable'
LANGUAGE JAVA 
PARAMETER STYLE JAVA
но она что-то не создается, т.е коммандный центер не висне, не ошибки, не результата выполнения... :(
и не вижу в списке свою процедуру...

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

Заранее благодарен.
...
Рейтинг: 0 / 0
создание хранимой процедуры...
    #32282994
IBMer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
How I rember is not allowed to use connection statement in Stored Procedure.

About examples please look $DB2HOME/sqllib/sample/java
...
Рейтинг: 0 / 0
создание хранимой процедуры...
    #32283152
Lefan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
посмотрел примеры...
сделал как там, т.е.

поместил класс в $DB2HOME/sqllib/FUNCTION
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
 /**
 * JDBC Хранимая процедура SAV.PROB3
 */ 
import java.sql.*;                   // Классы JDBC
public class Prob
 123 ;
    public static void printTable (String name, ResultSet[] rs1 ) 
                                        throws SQLException, Exception
     123 ;
        // Получить соединение с базой данных
        Connection con = DriverManager.getConnection( "jdbc:default:connection" );
        PreparedStatement stmt = null;
        boolean bFlag;
        String sql;

        sql =  "SELECT * from "  + name;
        stmt = con.prepareStatement( sql );
        bFlag = stmt.execute();
        rs1[ 0 ] = stmt.getResultSet();
     125 ;
 125 ;


создал процедуру:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
CREATE PROCEDURE sav.PrintTable (IN name CHAR( 10 ))
DYNAMIC RESULT SETS  1 
LANGUAGE JAVA 
PARAMETER STYLE JAVA
NO DBINFO
FENCED
READS SQL DATA
PROGRAM TYPE SUB
EXTERNAL NAME 'Prob.printTable';


вызываю:
Код: plaintext
call sav.PrintTable('test');

на сервере выполняет
а в клиенте ошибку дает:
Код: plaintext
[IBM][CLI Driver][DB2/NT] SQL0444N  User defined function  "SAV.PrintTable"  (specific name  "SQL031003125538850" ) is implemented with code in library or path  "\sav.PrintTable" , function  "sav.PrintTable"  which cannot be accessed.  Reason code:  "4 ".  SQLSTATE= 42724 

значит я не могу юзать процедуры из клиента?
а если у мня сервер DB2 на отдельной магине, а Вев сервер на другой, как быть?
...
Рейтинг: 0 / 0
создание хранимой процедуры...
    #32283177
Lefan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
выше описанная ошибка QuestCenter

CommandCenter:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
 --------------------------- Command entered ----------------------------
 
call sav.PrintTable('test');
 ------------------------------------------------------------------------
 
call sav.PrintTable('test')
SQL1109N  The specified DLL  "sav.PrintTable"  could not be loaded.

- 1109 


как быть в этой ситуации?
...
Рейтинг: 0 / 0
создание хранимой процедуры...
    #32283216
Фотография NewYear
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>SQL1109N The specified DLL "sav.PrintTable" could not be loaded.

Lefan, я ничего не знаю про жабу, но откуда взялось "specified DLL" ?

вообще-то, посмотри в CLASSPATH, с которым стартована db2, а заодно в ману - что там про classloader у db2 сказано ?
скорее всего, ошибка где-то там
...
Рейтинг: 0 / 0
создание хранимой процедуры...
    #32283248
Lefan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
самое что интересное, на машинах где базы есть, идет все нормально...
а где только клиенты, ругается как писал выше...

проверил на 3 магинах с DB2 рвзными версиями (2 машины с 8 и 1 с 7 версией)
на 4 машинах клиенты, ни на одной не работает... :(
...
Рейтинг: 0 / 0
создание хранимой процедуры...
    #32283563
IBMerr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Run db2level on client and servers and comapre. This may be a problem.
...
Рейтинг: 0 / 0
создание хранимой процедуры...
    #32283589
Moses
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А с машин "где базы есть" обращался к базам на другом сервере или только к базе на этой машине?
...
Рейтинг: 0 / 0
создание хранимой процедуры...
    #32285712
Lefan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Базы то на всех серверах идут, процедуры на других не пробовал...
Будет время попробу....

С уважение Алексей.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / создание хранимой процедуры...
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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