Вниз
Скачать: CL | DM;

Передача в хранимую процедуру имени таблицы   Найти похожие ветки 

← →
mefodiy   (2008-07-16 22:42) [0]

Создаю хранимую процедуру:

CREATE PROCEDURE DbName.MyProc
(IN f_table VARCHAR(20))
SELECT * FROM f_table;

Но когда вызываю ее:

CALL DbName.MyProc("Vendor");

то получаю ошибку
"Table DbName.f_table doesn"t exists".

Что, нельзя передавать в ХП имя таблицы как параметр, или я что-то не так делаю?
Спасибо.


← →
mefodiy   (2008-07-16 22:43) [1]

Да, забыл сказать, что использую MySQL.


← →
Правильный$Вася   (2008-07-16 23:01) [2]

не знаю, как в MySQL, но в нормальных серверах нельзя, т.к. сервер при компиляции ХП не может проверить корректность запроса
если MySQL Поддерживает динамический SQL внутри типа EXECUTE STATEMENT, то можно попробовать


← →
turbouser ©   (2008-07-16 23:35) [3]


> mefodiy   (16.07.08 22:42)  

Стоит заметить, что такие вопросы возникают при неправильном проектировании.
Естественно, есть исключения, но врядли в этом случае.


← →
Anatoly Podgoretsky ©   (2008-07-17 22:50) [4]

> turbouser  (16.07.2008 23:35:03)  [3]

> Стоит заметить, что такие вопросы возникают при неправильном проектировании.

такие вопросы возникают при неправильном выборе профессии.


← →
stas ©   (2008-07-17 23:00) [5]

В Mssql это можно сделать, но не совсем так просто, в My - незнаю


← →
mefodiy   (2008-07-19 12:25) [6]

Нашел в интернете следующее простое решение:

CREATE PROCEDURE DbName.MyProc
(IN f_table VARCHAR(20))
BEGIN
 SET @s=CONCAT("SELECT * FROM ",f_table);
 PREPARE stmt FROM @s;
 EXECUTE stmt;
END


← →
turbouser ©   (2008-07-19 12:27) [7]


> mefodiy   (19.07.08 12:25) [6]

Всеравно в консерватории бардак.


← →
Правильный$Вася   (2008-07-20 19:59) [8]


>  следующее простое решение:

в нормальных условиях такие танцы нужны только для черезчур вывихнутых ситуаций
а когда эта вывихнутость превращается в в обыденность, то [7]


← →
ЮЮ ©   (2008-07-21 04:47) [9]

> Нашел в интернете следующее простое решение:


А дополнение к этому решению не предлагают, типа

CALL DbName.MyProc("Vendor DELETE FROM Vendor")


← →
mefodiy   (2008-07-21 20:12) [10]

Оценил всеобщее остроумие!


← →
ПРавильный$Вася   (2008-07-21 20:16) [11]


> Оценил всеобщее остроумие!

ты не на форму смотри, а на содержание
зри, как грится, в корень!



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.013 c
6-1192557976
Rembo
2007-10-16 22:06
2008.08.24
TIdIcmpClient количество посланных байт


15-1214918754
iZEN
2008-07-01 17:25
2008.08.24
С сегодняшнего дня прекращены продажи Windows XP


15-1215179495
jane
2008-07-04 17:51
2008.08.24
Не могу установить delphi 5 :(


15-1215575271
AEN
2008-07-09 07:47
2008.08.24
Хочу сделать пробный сайт


6-1192377094
JanMihail
2007-10-14 19:51
2008.08.24
Передача файла через сокет




   Наверх