![]() |
Модераторы: LSD |
![]() ![]() ![]() |
|
Peter |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 771 Регистрация: 28.7.2003 Где: Ставрополь Репутация: нет Всего: 1 |
Задача: создать таблицу T1, если её ещё нет в базе.
MS SQL Server на запрос
1) Меняю INFORMATION_SCHEMA.TABLES на all_all_tables. 2) Перед IF ставлю EXEC (иначе "неизвестное начало команды..."). 3) Ставлю точки с запятой после каждой команды. 4) Вместо END пишу END IF. И всё равно: "после BEGIN не может стоять CREATE". Что делать? -------------------- всё, что делаете, делайте от души, как для Господа (Послание апостола Павла колоссянам, 3:23). |
|||
|
||||
Sqlninja |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 353 Регистрация: 15.5.2006 Где: San Francisco, CA Репутация: 13 Всего: 13 |
нельзя мешать DDL и pl/sql, используй динамический SQL
-------------------- It's better to burn out than to fade away. |
|||
|
||||
batigoal |
|
|||
![]() Нелетучий Мыш ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6423 Регистрация: 28.12.2004 Где: Санктъ-Петербургъ Репутация: 2 Всего: 151 |
Peter, сделай просто CREATE. Если таблица уже существует, Оракл не даст её создать, т.к. у тебя CREATE, а не CREATE OR REPLACE.
-------------------- "Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли) ЖоржЖЖ |
|||
|
||||
Peter |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 771 Регистрация: 28.7.2003 Где: Ставрополь Репутация: нет Всего: 1 |
Дело в том, что у меня программа соединяется с БД через ODBC. Та обёртка, которую я использую, в случае ошибки выкинет исключение, а его хотелось бы избежать. Если ничего другого не остаётся, придется просто писать CREATE и ставить пустой блок catch(...){}.
-------------------- всё, что делаете, делайте от души, как для Господа (Послание апостола Павла колоссянам, 3:23). |
|||
|
||||
Sqlninja |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 353 Регистрация: 15.5.2006 Где: San Francisco, CA Репутация: 13 Всего: 13 |
Ну. Возьми тот блок который я тебе написал, добавь секцию exception, и обработай его там. Тогда до твоей обертки ничего не дойдет. -------------------- It's better to burn out than to fade away. |
|||
|
||||
Peter |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 771 Регистрация: 28.7.2003 Где: Ставрополь Репутация: нет Всего: 1 |
А как его вставить в программу на C++? -------------------- всё, что делаете, делайте от души, как для Господа (Послание апостола Павла колоссянам, 3:23). |
|||
|
||||
Sqlninja |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 353 Регистрация: 15.5.2006 Где: San Francisco, CA Репутация: 13 Всего: 13 |
Причем тут уже С++?? Ты врроде хотел T-sql'ный блок переписать для Oracle?
Вообще,это уже тема для отдельного топика,но... На самом деле логика примитивна настолько, что его проще переписать на С++, имхо. Главный смысл в запросе, который проверяет существование таблицы. -------------------- It's better to burn out than to fade away. |
|||
|
||||
Filatov NA |
|
|||
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 12.10.2007 Где: г. Нижнекамск Репутация: нет Всего: нет |
Код, который тебе посоветовал товарищь, оборачиваешь в процедуру. А в С++ вызываешь стандартными методами. Кстате, для С++Builder есть очень замечательный компонент ODAC. |
|||
|
||||
Peter |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 771 Регистрация: 28.7.2003 Где: Ставрополь Репутация: нет Всего: 1 |
Сделал, как проще.
-------------------- всё, что делаете, делайте от души, как для Господа (Послание апостола Павла колоссянам, 3:23). |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Oracle" | |
|
Данный раздел предназначен для обсуждения проблем с Oracle Database, другие продукты Oracle здесь не обсуждаются. Просьба при создании темы, придерживаться следующих правил:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Zloxa, LSD. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Oracle | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |