Как прогнать Oracle's stored procedure with parameters в SQLDeveloper?

User avatar
Marie Clair
Уже с Приветом
Posts: 17688
Joined: 19 Sep 2005 16:57
Location: NJ, US

Как прогнать Oracle's stored procedure with parameters в SQLDeveloper?

Post by Marie Clair »

Вижу, что из application возвращает, не то что надо, хочу перепроверить через SQLDeveloper.
Выглядет вот так в config file:

Code: Select all

{ call ? := getdata.getuniongroupintersectXXXX(?, ?, ?, ?, ?) }
Application вот так пакует OracleCallableStatement:

Code: Select all

cs.registerOutParameter( 1, OracleTypes.CURSOR );
		cs.setString( 2, state );
		cs.setInt( 3, group1TableID );
		cs.setARRAY( 4, arrayParam1 );
		cs.setInt( 5, group2TableID );
		cs.setARRAY( 6, arrayParam2 );
Как с реальными данными прогнать? Особенно как array передать.
Спасибо.
The best things in life either make you fat, drunk, or pregnant.
User avatar
Uzito
Уже с Приветом
Posts: 8230
Joined: 06 Feb 2002 10:01
Location: NJ, USA

Re: Как прогнать Oracle's stored procedure with parameters в SQLDeveloper?

Post by Uzito »

написать pl/sql, сделать тип "массив", и переменную оного типа, заполнить его как надо, передать в процедуру.

Code: Select all

DECLARE
   TYPE m IS VARRAY (5) OF VARCHAR (10);
   ma   m;
BEGIN
   ma := m ('1','2','3','4', '5');
   DBMS_OUTPUT.put_line (ma (1));
END;
User avatar
Marie Clair
Уже с Приветом
Posts: 17688
Joined: 19 Sep 2005 16:57
Location: NJ, US

Re: Как прогнать Oracle's stored procedure with parameters в SQLDeveloper?

Post by Marie Clair »

Uzito wrote: 15 May 2017 21:24 написать pl/sql, сделать тип "массив", и переменную оного типа, заполнить его как надо, передать в процедуру.

Code: Select all

DECLARE
   TYPE m IS VARRAY (5) OF VARCHAR (10);
   ma   m;
BEGIN
   ma := m ('1','2','3','4', '5');
   DBMS_OUTPUT.put_line (ma (1));
END;
Uzito, спасибо, но вы меня переоценили. Попроще можно обьяснить.
The best things in life either make you fat, drunk, or pregnant.
User avatar
Uzito
Уже с Приветом
Posts: 8230
Joined: 06 Feb 2002 10:01
Location: NJ, USA

Re: Как прогнать Oracle's stored procedure with parameters в SQLDeveloper?

Post by Uzito »

Marie Clair wrote: 16 May 2017 00:07 Uzito, спасибо, но вы меня переоценили. Попроще можно обьяснить.
Нужно посмотреть определение процедуры в базе данных - какие параметры и какого типа передаются в процедуру/функцию и возвращаются из нее. Потом нужно сделать pl/sql скрипт, в котором в декларационной секции определить переменные параметры схожего типа (как то массивы, курсоры и т.д), потом установить интересующие вас значение переменных и сделать вызов процедуру/функцию используя эти переменные. Запустить скрипт.

Если нет прав за запуск процедуры в продакшене, можно посмотреть код/скопировать его в свой скрипт и подставить параметры как надо.

Return to “Вопросы и новости IT”