Как я могу вызвать хранимую процедуру из функции в Мариадб? - PullRequest
0 голосов
/ 18 января 2019

Я хочу получить количество строк, представленных в таблице, которые я передаю во время выполнения функции.

Я создал процедуру и функцию для выполнения динамических запросов. Функция не позволяет динамический запрос, потому что я вызываю процедуру из функции. эта процедура имеет динамический запрос.

/////// процедура ///////

CREATE PROCEDURE bizopsgolddev.`test1`(tbnm varchar(100))
begin
 declare sql_text varchar(200); 
 DECLARE EXIT HANDLER FOR SQLEXCEPTION
        BEGIN
                SELECT CONCAT(sql_text, ' is not valid');
        END;
        set sql_text=concat('select count(*) from ',tbnm);
        SET @SQL := sql_text;
        PREPARE stmt FROM @SQL;
        EXECUTE stmt;
        DEALLOCATE PREPARE stmt;
end;

////// функция //////

DROP FUNCTION IF EXISTS xyz;
CREATE FUNCTION `xyz`(tname varchar(100)) RETURNS int(11)
begin
declare val int;
call test1(tname);
return 1;
end;

если я выполню это // select xyz ('axpdc') // он должен вернуть количество строк

Может ли кто-нибудь сказать мне, как я могу получить счет, передав имя таблицы в функцию (только в mariadb)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...