Гость
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / execute, в таблице прописан скрипт, переменным присваиваются в функции типа / 7 сообщений из 7, страница 1 из 1
26.10.2018, 11:30
    #39723350
KSerega
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
execute, в таблице прописан скрипт, переменным присваиваются в функции типа
CREATE OR REPLACE FUNCTION dat.f_test1()
RETURNS void AS
$BODY$

declare
varAmount numeric(15,6) := 0;
varVolume numeric(15,6) := 0;
varАrea numeric(15,2) := null;
VarText varchar(255) := 'varАrea * varVolume';

begin

varАrea := 3.62;
varVolume := 4.12;

--execute 'select $1 ' into varAmount using (varАrea * varVolume)::numeric;
execute 'select '||(VarText) into varAmount;

raise info '1.volume = %, varАrea = %, VarText = %, varAmount = %', varVolume, varАrea, VarText, varAmount;

end
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;
ALTER FUNCTION dat.f_test()
OWNER TO postgres;
...
Рейтинг: 0 / 0
26.10.2018, 13:48
    #39723504
Maxim Boguk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
execute, в таблице прописан скрипт, переменным присваиваются в функции типа
KSerega,

А в чем вопрос то???
...
Рейтинг: 0 / 0
26.10.2018, 14:46
    #39723549
256k
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
execute, в таблице прописан скрипт, переменным присваиваются в функции типа
Maxim BogukKSerega,

А в чем вопрос то???

Это было начало, он еще недоформулировал
...
Рейтинг: 0 / 0
26.10.2018, 15:55
    #39723597
KSerega
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
execute, в таблице прописан скрипт, переменным присваиваются в функции типа
так ошибку выдает,


ОШИБКА: столбец "varАrea" не существует
LINE 1: select varАrea * varVolume
^
QUERY: select varАrea * varVolume
CONTEXT: функция PL/pgSQL dat.f_test1(), строка 15, оператор EXECUTE
********** Ошибка **********

ОШИБКА: столбец "varАrea" не существует
SQL-состояние: 42703
Контекст: функция PL/pgSQL dat.f_test1(), строка 15, оператор EXECUTE
...
Рейтинг: 0 / 0
29.10.2018, 07:30
    #39724238
Visermoz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
execute, в таблице прописан скрипт, переменным присваиваются в функции типа
Попробуйте так:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
CREATE OR REPLACE FUNCTION f_test1()
RETURNS void AS
$BODY$
declare 
	varAmount numeric(15,6) := 0;
	varVolume numeric(15,6) := 0;
	varАrea numeric(15,2) := null;
	VarText varchar(255) := '$1 * $2';
begin
	varАrea := 3.62;
	varVolume := 4.12;
	execute 'select '||VarText into varAmount using varАrea, varVolume;
	raise info '1.volume = %, varАrea = %, VarText = %, varAmount = %', varVolume, varАrea, VarText, varAmount;
end;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;
...
Рейтинг: 0 / 0
29.10.2018, 08:54
    #39724261
KSerega
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
execute, в таблице прописан скрипт, переменным присваиваются в функции типа
Так сработало, только я не знаю какие переменные там будут, в sybase asa сейчас сделано в таблицу поле RealVolume записывается скрипт типа:
'((if @lvalue is null then isnull((nullif(isnull(@HValue,0),0)-@lvalue_live),0)/(@square_variant-@lsquare_live)*@S_i else isnull(@lvalue,@Quota1*@S_i) endif))'

в процедуре выполняется execute immediate 'set _volume=' || @RealVolume, а в postgres не получается
...
Рейтинг: 0 / 0
30.10.2018, 08:34
    #39724767
KSerega
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
execute, в таблице прописан скрипт, переменным присваиваются в функции типа
спасибо, все получилось
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / execute, в таблице прописан скрипт, переменным присваиваются в функции типа / 7 сообщений из 7, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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