[MySQL Stored Proc] Передать имя таблицы как параметр
в mysql конечно может быть исключение, но подозреваю что вряд ли
В Oracle есть конструкция "execute immediate". Возможно, есть аналог в MySQL Stored Proc.
Не ожидал от тебя такого увидеть. В Оракл это несколькими способами можно сделать (вернуть набор значений с таблицы).
В Оракл это несколькими способами можно сделать (вернуть набор значений с таблицы).кроме EXECUTE IMMEDIATE (DBMS_SQL) не знаю способов
в DB2 есть похожее, но там стоко извратов, что проще это не использовать
2. Пакет DBMS_SQL
execute immediate не из пакета DBMS_SQL если что.
нагуглил
http://rpbouman.blogspot.com/2005/11/mysql-5-prepared-statem...
mysql> set @table_name := 'mytable';
Query OK, 0 rows affected (0.02 sec)
mysql> set @sql_text:=concat('create table ',@table_name,'(id int unsigned)');
Query OK, 0 rows affected (0.00 sec)
execute immediate не из пакета DBMS_SQL если что.если что, то это одно и то же
execute immediate - это конструкция, типа синтаксический сахар для вызова DBMS_SQL
Спорить не буду. DBMS_SQL использовал один раз (переписывал код, где он был)... но че то мне кажется это разные вещи.
1. Вернуть Ref_Cursor открытый с использованием Open Forты крут
Но уже не понадобилось =( К сожалению, или ODBC с mysql криво работает, или ENVOX с ODBC криво работает, но в итоге принять данные от хранимой процедуры не получилось. Так что будем по старинке, SQL-запросы вызывать ручками.
Оставить комментарий
Fragaria
Подскажите, как мне сделать так, чтобы вместо имени таблицы в SQL-запросе подставлялось переданное как параметр значение?Хочется что-то типа этого:
где как раз CONCAT(prefix,"table") собирает имя таблицы из константы и параметра.