powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Вызов Oracle процедуры c параметром типа blob
4 сообщений из 4, страница 1 из 1
Вызов Oracle процедуры c параметром типа blob
    #37003462
Толян
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Из PowerBuilder (11.5) возникла необходимость работы с ниже приведенной пакетной пользовательской процедурой PROCEDURE IB6DOCFLOW.message ( СУБД Oracle10g, для подключение используется native client).

1. Как правильно объявить данную процедуру в PB ?
2. Как правильно заполнить параметр document_attachedfiles ?

Oracle:
CREATE OR REPLACE PROCEDURE IB6DOCFLOW.message
(
out_error OUT INTEGER, -- ошибка
client_absid IN INTEGER, -- абс id клиента
document_subject IN VARCHAR, --тема письма
document_text IN VARCHAR, --текст письма
document_attachedfiles IN FILEINF_T --список файлов
)

CREATE OR REPLACE TYPE IB6DOCFLOW.FILEINF AS OBJECT
(
attachedfiles_name VARCHAR(255), –имя файла
attachedfiles_val BLOB --содержимое
)

PB:
SUBROUTINE IB6MESSAGE ( ref out_error, long client_absid, string document_subject, string document_text, ????? document_attachedfiles) RPCFUNC ALIAS FOR "IB6DOCFLOW.message"
...
Рейтинг: 0 / 0
Вызов Oracle процедуры c параметром типа blob
    #37003487
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По идее тип в PB тоже blob (или readonly blob).
Только есть ограничение на размер блоба для RPCFUNC+Oracle - не более 32512 байтов (по крайней мере - согласно справке: Oracle database interface->Database stored procedures->Supported features with RPCFUNC keyword).

SUBROUTINE IB6MESSAGE ( ref long out_error, long client_absid, string document_subject, string document_text, readonly blob document_attachedfiles) RPCFUNC ALIAS FOR "IB6DOCFLOW.message"
...
Рейтинг: 0 / 0
Вызов Oracle процедуры c параметром типа blob
    #37013265
Толян
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробовал, ошибка вызова процедуры:

ORA-06550: line 1, column 15:
PLS-00306: wrong number or types of arguments in call to 'MESSAGE'
ORA-06550: line 1, column 15:
PL/SQL: Statement ignored
...
Рейтинг: 0 / 0
Вызов Oracle процедуры c параметром типа blob
    #37014377
Фотография PL99
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly MoskovskyПо идее тип в PB тоже blob (или readonly blob).
Только есть ограничение на размер блоба для RPCFUNC+Oracle - не более 32512 байтов (по крайней мере - согласно справке: Oracle database interface->Database stored procedures->Supported features with RPCFUNC keyword).

SUBROUTINE IB6MESSAGE ( ref long out_error, long client_absid, string document_subject, string document_text, readonly blob document_attachedfiles) RPCFUNC ALIAS FOR "IB6DOCFLOW.message"
Есть мнение, что вот это:Толян document_attachedfiles IN FILEINF_T --список файлов не просто указанный ниже тип, а коллекция, так что, я бы начал с попытки передать массив.

2TC Пробуйте что-нибудь вроде
Код: plaintext
1.
2.
3.
4.
5.
6.
global type fileinf from structure
	string		attachedfiles_name
	blob		attachedfiles_val
end type

SUBROUTINE IB6MESSAGE ( ref long out_error, long client_absid, string document_subject, string document_text, readonly fileinf document_attachedfiles[]) RPCFUNC ALIAS FOR "IB6DOCFLOW.message"
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Вызов Oracle процедуры c параметром типа blob
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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