Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 создание таблицы в процедуре с параметром в запросе  [new]
хитрый и большой
Member

Откуда: Москва
Сообщений: 47
Добрый день!
Не подскажите, как в процедуре создать таблицу с помощью запроса
create table ddd2 as
select  * from aaa where Idaccount = pID
где pID параметр процедуры????


пробовал
CREATE OR REPLACE PROCEDURE ppp (pID in number) is
begin
execute immediate 'create table ddd2 as
select  * from aaa where Idaccount = ''pID'' ' ;
end ppp;


запускаю
call ppp(2)


пишет ошибку
ORA-01722  


пробовал и

CREATE OR REPLACE PROCEDURE ppp (pID in number) is
begin
execute immediate 'create table ddd2 as
select  * from aaa where Idaccount = :pID ' USING IN pID;
end ppp; 

пишет ошибку
ORA-01027 Bind variables not allowed for data definition operations 

КАК????
3 сен 10, 10:07    [9376604]     Ответить | Цитировать Сообщить модератору
 Re: создание таблицы в процедуре с параметром в запросе  [new]
Вячеслав Любомудров
Member

Откуда: Владивосток
Сообщений: 18482
||
3 сен 10, 10:10    [9376644]     Ответить | Цитировать Сообщить модератору
 Re: создание таблицы в процедуре с параметром в запросе  [new]
comphead
Member

Откуда: Киев
Сообщений: 3390
Вячеслав Любомудров,

это самый краткий и точный ответ, что я видел. :)
3 сен 10, 10:13    [9376671]     Ответить | Цитировать Сообщить модератору
 Re: создание таблицы в процедуре с параметром в запросе  [new]
SQLap
Member [заблокирован]

Откуда:
Сообщений: 34063
comphead
Вячеслав Любомудров,

это самый краткий и точный ответ, что я видел. :)


в вопросах по ORA-01427 можно наблюдать ответ IN.
Тоже два символа.
3 сен 10, 10:17    [9376720]     Ответить | Цитировать Сообщить модератору
 Re: создание таблицы в процедуре с параметром в запросе  [new]
хитрый и большой
Member

Откуда: Москва
Сообщений: 47
Вячеслав Любомудров,

пробовал и

CREATE OR REPLACE PROCEDURE ppp (pID in number) is
begin
execute immediate 'create table ddd2 as
select  * from aaa where Idaccount = ''||pID||'' ' ;
end ppp;

тоже ORA-01722

причем когда запускаю

CREATE OR REPLACE PROCEDURE ppp (pID in number) is
begin
execute immediate 'create table ddd2 as
select  * from aaa where Idaccount = 2 ' ;
end ppp;

работает!!
3 сен 10, 10:19    [9376742]     Ответить | Цитировать Сообщить модератору
 Re: создание таблицы в процедуре с параметром в запросе  [new]
zhal
Member

Откуда: Киев-Харьков
Сообщений: 647
хитрый и большой,

Вам же сказали || :)

CREATE OR REPLACE PROCEDURE ppp (pID in number) is
begin
execute immediate 'create table ddd2 as
select  * from aaa where Idaccount = ' || pID;
end ppp; 
3 сен 10, 10:21    [9376766]     Ответить | Цитировать Сообщить модератору
 Re: создание таблицы в процедуре с параметром в запросе  [new]
comphead
Member

Откуда: Киев
Сообщений: 3390
хитрый и большой,

сдается вы нас водите за нос.
версия оракла какая?
3 сен 10, 10:23    [9376792]     Ответить | Цитировать Сообщить модератору
 Re: создание таблицы в процедуре с параметром в запросе  [new]
comphead
Member

Откуда: Киев
Сообщений: 3390
хитрый и большой,

и вы напутали с конкатенацией
3 сен 10, 10:24    [9376807]     Ответить | Цитировать Сообщить модератору
 Re: создание таблицы в процедуре с параметром в запросе  [new]
Вячеслав Любомудров
Member

Откуда: Владивосток
Сообщений: 18482
comphead
Вячеслав Любомудров,

это самый краткий и точный ответ, что я видел. :)
:)
https://www.sql.ru/forum/actualsearch.aspx?search=%F1%E0%EC%FB%E9+%EB%E0%EA%EE%ED%EE%ED%E8%F7%ED%FB%E9+%EE%F2%E2%E5%F2&sin=0&a=%C2%FF%F7%E5%F1%EB%E0%E2+%CB%FE%E1%EE%EC%F3%E4%F0%EE%E2&ma=1&bid=3&dt=-1&s=1&so=1
3 сен 10, 10:24    [9376808]     Ответить | Цитировать Сообщить модератору
 Re: создание таблицы в процедуре с параметром в запросе  [new]
хитрый и большой
Member

Откуда: Москва
Сообщений: 47
zhal, Вячеслав Любомудров,
огромное спасибо!!!!
3 сен 10, 10:25    [9376825]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: создание таблицы в процедуре с параметром в запросе  [new]
IBR
Member

Откуда:
Сообщений: 140
а что если в запросе не одно условие,а несколько? как быть в таком случаи?
28 дек 13, 13:23    [15358712]     Ответить | Цитировать Сообщить модератору
 Re: создание таблицы в процедуре с параметром в запросе  [new]
K790
Member

Откуда:
Сообщений: 631
IBR,

также как и с одним, но с несколькими. что именно не получается ?
28 дек 13, 14:04    [15358782]     Ответить | Цитировать Сообщить модератору
 Re: создание таблицы в процедуре с параметром в запросе  [new]
-2-
Member

Откуда:
Сообщений: 15330
IBR
а что если в запросе не одно условие,а несколько?
Сопособность к индукции я вляется наиболее значимым признаком разума.
28 дек 13, 14:06    [15358786]     Ответить | Цитировать Сообщить модератору
 Re: создание таблицы в процедуре с параметром в запросе  [new]
IBR
Member

Откуда:
Сообщений: 140
K790,


begin
execute immediate 'create table z_idd4 as select * from yyy where dDate ='||'27.02.13'||'and ntel='||'123456789' ;
end;

выходит ошибка "ora-00933:неверное завершение SQL-предложения"
30 дек 13, 07:32    [15363106]     Ответить | Цитировать Сообщить модератору
 Re: создание таблицы в процедуре с параметром в запросе  [new]
Elic
Member

Откуда:
Сообщений: 29976
IBR
выходит ошибка "ora-00933:неверное завершение SQL-предложения"
У тебя какое образование? Начальственное?
30 дек 13, 08:26    [15363157]     Ответить | Цитировать Сообщить модератору
 Re: создание таблицы в процедуре с параметром в запросе  [new]
IBR
Member

Откуда:
Сообщений: 140
Elic,

среднее,не оконченное.
может подскажешь,где ошибка зарыта?
30 дек 13, 08:41    [15363189]     Ответить | Цитировать Сообщить модератору
 Re: создание таблицы в процедуре с параметром в запросе  [new]
Elic
Member

Откуда:
Сообщений: 29976
IBR
где ошибка зарыта?
Форум - не отладчик, а dbms_output - да.
30 дек 13, 08:47    [15363210]     Ответить | Цитировать Сообщить модератору
 Re: создание таблицы в процедуре с параметром в запросе  [new]
IBR
Member

Откуда:
Сообщений: 140
???????
30 дек 13, 09:13    [15363294]     Ответить | Цитировать Сообщить модератору
 Re: создание таблицы в процедуре с параметром в запросе  [new]
dmdmdm
Member

Откуда: Нижний Новгород
Сообщений: 1635
IBR, ORA-00933 "намекает" вам, что синтаксис запроса у вас неверный.

Если затрудняетесь пока пользоваться оператором конкатенации ||, попробуйте присвоить текст запроса переменной, и вывести ее с помощью пакета dbms_output.

Надеюсь (как всегда, наивно), что документацию по PL/SQL синтаксису вы не попросите нас искать.
30 дек 13, 09:58    [15363454]     Ответить | Цитировать Сообщить модератору
 Re: создание таблицы в процедуре с параметром в запросе  [new]
andreymx
Member

Откуда: Запорожье
Сообщений: 54376
IBR
K790,


begin
execute immediate 'create table z_idd4 as select * from yyy where dDate ='||'27.02.13'||'and ntel='||'123456789' ;
end;

выходит ошибка "ora-00933:неверное завершение SQL-предложения"
K790, скажи, зачем это тебе делать в pl/sql?
разве нельзя просто
create table z_idd4 as
select *
  from yyy
 where  dDate =date '2013-02-27' and ntel=123456789
30 дек 13, 10:12    [15363534]     Ответить | Цитировать Сообщить модератору
 Re: создание таблицы в процедуре с параметром в запросе  [new]
IBR
Member

Откуда:
Сообщений: 140
andreymx,

хотелось бы поэксперементировать,да и ещ мне это нужно в процедуре.
30 дек 13, 10:25    [15363604]     Ответить | Цитировать Сообщить модератору
 Re: создание таблицы в процедуре с параметром в запросе  [new]
andreymx
Member

Откуда: Запорожье
Сообщений: 54376
IBR
andreymx,

хотелось бы поэксперементировать, да и ещё мне это нужно в процедуре.
занафига тебе создавать в процедуре таблицы по такому алгоритму?
30 дек 13, 10:37    [15363671]     Ответить | Цитировать Сообщить модератору
 Re: создание таблицы в процедуре с параметром в запросе  [new]
IBR
Member

Откуда:
Сообщений: 140
declare
vSql varchar2 (500) := 'create table xxx1 as select * from YYY where dDate = ';
begin
dbms_output.put_line(vSql||sysdate);
execute immediate vSql||sysdate;
end;

где ошибка?
30 дек 13, 10:38    [15363676]     Ответить | Цитировать Сообщить модератору
 Re: создание таблицы в процедуре с параметром в запросе  [new]
Elic
Member

Откуда:
Сообщений: 29976
IBR
где ошибка?
Упрямство, достойное осла. Смотри на всю команду.
30 дек 13, 10:42    [15363694]     Ответить | Цитировать Сообщить модератору
 Re: создание таблицы в процедуре с параметром в запросе  [new]
andreymx
Member

Откуда: Запорожье
Сообщений: 54376
IBR
declare
vSql varchar2 (500) := 'create table xxx1 as select * from YYY where dDate = ';
begin
dbms_output.put_line(vSql||sysdate);
execute immediate vSql||sysdate;
end;

где ошибка?
посмотри на мой текст и определи, чем он отличается от твоего в dbms_output
30 дек 13, 10:42    [15363695]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Oracle Ответить