Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2008.08.24;
Скачать: [xml.tar.bz2];

Вниз

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

 
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 вся ветка

Форум: "Начинающим";
Текущий архив: 2008.08.24;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.043 c
15-1215410372
Загрузка
2008-07-07 09:59
2008.08.24
Загрузка сайта www.mail.ru


15-1215411389
oxffff
2008-07-07 10:16
2008.08.24
Сколько добираться из аэропорта Адлера до Лазаревское.


15-1215396749
Slider007
2008-07-07 06:12
2008.08.24
С днем рождения ! 7 июля 2008 понедельник


15-1215183486
Хохол
2008-07-04 18:58
2008.08.24
Пятничный флуд: Большой адронный коллайдер


15-1215413564
ПЛОВ
2008-07-07 10:52
2008.08.24
Файл bla.bla является скрытым





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский