Я создал процедуру в mysql, которая берет имя схемы в качестве параметра и хочет вернуть значение из таблицы в этой схеме. моя процедураПередача имени схемы в процедуре mysql
CREATE procedure `get_client_id` (IN p_schema VARCHAR(12), OUT l_client_id VARCHAR(5))
deterministic
BEGIN
declare l_client_id varchar(5);
SET @sql_text = concat('SELECT lookup_value INTO l_client_id FROM ',p_schema,'.lookup_code_detail where lookup_code = ''CLIENT_ID''');
PREPARE stmt FROM @sql_text;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
END
когда я вызываю процедуру,
call get_client_id('SMS',@l_client_id);
его бросали эту ошибку
00:11:15 call get_client_id('SMS',@l_client_id) Error Code: 1327. Undeclared variable: l_client_id 0.000 sec
Я попытался создать процедуру, как
CREATE procedure `get_client_id` (IN p_schema VARCHAR(12), OUT l_client_id VARCHAR(5))
deterministic
BEGIN
declare l_client_id varchar(5);
declare param_db varchar(5);
set param_db = p_schema;
SELECT concat('schema is ', param_db);
SELECT lookup_value
INTO l_client_id
FROM param_db.lookup_code_detail
where lookup_code = 'CLIENT_ID';
END
, но это также t hrows ошибка
00:25:44 call get_client_id('SMS',@l_client_id) Error Code: 1146 Table 'param_db.lookup_code_detail' doesn't exist