Главная страница
    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.036 c
2-1216300512
Scary
2008-07-17 17:15
2008.08.24
внешний вид моего файла


2-1216590932
timekiller
2008-07-21 01:55
2008.08.24
Как выделить строку в TMemo?


3-1204540359
webpauk
2008-03-03 13:32
2008.08.24
Выборка из 2 таблиц


2-1216206248
Sashka
2008-07-16 15:04
2008.08.24
Пропадает Главное Меню при изменении ParentWindow


15-1215350457
JohnKorsh
2008-07-06 17:20
2008.08.24
Восстановление реестра в XP.





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский