Как мы можем сделать имена таблиц БД динамическими в wso2esb? - PullRequest
0 голосов
/ 07 июня 2018

Я пытаюсь сохранить данные в базе данных. Здесь я могу выдвинуть данные для одной таблицы.нужно как будто я хочу использовать одну и ту же последовательность для нескольких таблиц для передачи данных.БД: SQL Server, а также нужно знать, как мы можем передавать динамические переменные в cdata.например: установить где =?]]>

вот как мы задали динамический режим Заранее спасибо:)

Ответы [ 2 ]

0 голосов
/ 12 июня 2018

Ваш код почти работает.Но dbo.table=<table_name> не получил значение напрямую.Так что попробовал другой способ тоже.Ниже приведен способ:

DECLARE 
     @tablename AS nvarchar(100),
     @col1 AS nvarchar(100),
     @val1 AS nvarchar(100),
     @val2 AS nvarchar(100);
SET @tablename = '<table_name>';
SET @col1 = '<column_name>';
SET @val1 = '<column1_value>';
SET @val2 = '<column2_value>';
DECLARE @query_a AS nvarchar(500);
SET @query_a = 'Update '+@tablename+' set '+@col1+'='''+@val1+''' WHERE number ='''+@val2+''''
EXECUTE sp_executesql @query_a;

внутренний параметр называется get-property('table_name'), get-property('column_name').

0 голосов
/ 08 июня 2018

Не уверен, что он работает с именами таблиц (использовал его только для значений), но, по крайней мере, вы можете попробовать.Возможно, это сработает, если вы установите свойство с помощью оператора sql и передадите его.

<statement>
                        <sql>
                             update dbo.table = ? WHERE id = ?</sql>
                        <parameter expression="get-property('transport','TRANSPORT_VAL1')"
                                   type="VARCHAR"/>
                        <parameter expression="get-property('transport','TRANSPORT_VAL2')" type="INTEGER"/>
                     </statement>
...