Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Сравнение СУБД Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Двоеточие в идентификаторах  [new]
Alexander_Vi
Guest
Подскажите, есть ли в природе базы данных , позволяющие использовать двоеточие (:) в именах параметров ?
Идеально было бы если бы кто-нить ткнул меня носом в соотв. раздел ANSI SQL где было бы сказано, что : нельзя использовать в идентификаторах.
14 ноя 08, 01:10    [6438537]     Ответить | Цитировать Сообщить модератору
 Re: Двоеточие в идентификаторах  [new]
voledy
Member

Откуда: Волгоград
Сообщений: 235
Alexander_Vi
Подскажите, есть ли в природе базы данных , позволяющие использовать двоеточие (:) в именах параметров ?
Идеально было бы если бы кто-нить ткнул меня носом в соотв. раздел ANSI SQL где было бы сказано, что : нельзя использовать в идентификаторах.



select id_comp id: from company 

Msg 156, Level 15, State 1, Line 1
Incorrect syntax near the keyword 'from'.
14 ноя 08, 01:13    [6438538]     Ответить | Цитировать Сообщить модератору
 Re: Двоеточие в идентификаторах  [new]
voledy
Member

Откуда: Волгоград
Сообщений: 235
Alexander_Vi
Подскажите, есть ли в природе базы данных , позволяющие использовать двоеточие (:) в именах параметров ?
Идеально было бы если бы кто-нить ткнул меня носом в соотв. раздел ANSI SQL где было бы сказано, что : нельзя использовать в идентификаторах.


Хотя в Firebird можно...


CREATE PROCEDURE CAPTION (
    str varchar(1024))
returns (
    stttrade varchar(1024),
    sttinn varchar(1024))
as
declare variable i bigint;
begin

  execute procedure deleteznak(:str)
  returning_values(:str);
  execute procedure editword(:str)
  returning_values(:str);

  select first 1 a.stt , a.hesh from arrayname(:str) a
  order by a.countword desc ,a.ch_len desc
  into :str , :i;

    select first 1 tradenmr ,y.tradenmnx
      from
      (
       select id_tradenm
        from
        (
         select  a.id_tradenm, a.name_hesh from tradenmHESH a
         where a.hesh = :i
        )x where name_hesh = :str
       )x join tradenm y on TRADENMNX = id_tradenm
    into :stttrade ,:i ;

  select first 1 innr from inn a join tndp b on a.innnx = b.innnx
                      where b.tradenmnx = :i
  into :sttinn;
  suspend;

end
14 ноя 08, 01:15    [6438540]     Ответить | Цитировать Сообщить модератору
 Re: Двоеточие в идентификаторах  [new]
voledy
Member

Откуда: Волгоград
Сообщений: 235
но только в ХП, да тригерах...

---------
:o)=|=<
14 ноя 08, 01:17    [6438543]     Ответить | Цитировать Сообщить модератору
 Re: Двоеточие в идентификаторах  [new]
Alexander_Vi
Guest
voledy
но только в ХП, да тригерах... --------- :o)=|=<
Ок, тогда немного сузим область : меня интересуют только имена параметров ... вроде как по опыту использовать : в параметрах никакая база не дает, но хотелось бы какого-нить документального подтверждения ( как я уже писал выше ANSI SQL было бы супер, только чето-то не могу найти )
Модератор: Тема перенесена из форума "Microsoft SQL Server".


Сообщение было отредактировано: 14 ноя 08, 08:56
14 ноя 08, 05:51    [6438620]     Ответить | Цитировать Сообщить модератору
 Re: Двоеточие в идентификаторах  [new]
Bogdanov Andrey
Member

Откуда: Да уже и сам не знаю...
Сообщений: 2203
Alexander_Vi
вроде как по опыту использовать : в параметрах никакая база не дает

Ну почему же. Вот, например, в Oracle двоеточие можно использовать где угодно, хоть в именах объектов, хоть в переменных, хоть в параметрах.
SQL> create table ":table" (":column" integer);

Таблица создана.

SQL> insert into ":table"(":column") values(1);

1 строка создана.

SQL> create procedure ":proc"(":param" integer)is
  2    ":count" integer;
  3  begin
  4    select ":column" into ":count" from ":table" where ":column"=":param";
  5    dbms_output.put_line(':count='||":count");
  6  end;
  7  /

Процедура создана.

SQL> set serveroutput on
SQL> exec ":proc"(1)
:count=1

Процедура PL/SQL успешно завершена.

SQL> drop procedure ":proc";

Процедура удалена.

SQL> drop table ":table";

Таблица удалена.
14 ноя 08, 10:25    [6439225]     Ответить | Цитировать Сообщить модератору
 Re: Двоеточие в идентификаторах  [new]
hvlad
Member

Откуда:
Сообщений: 11578
Bogdanov Andrey
Ну почему же. Вот, например, в Oracle двоеточие можно использовать где угодно, хоть в именах объектов, хоть в переменных, хоть в параметрах
С квотированными идентификаторами, думаю, где угодно можно использовать что угодно :)
14 ноя 08, 10:56    [6439429]     Ответить | Цитировать Сообщить модератору
 Re: Двоеточие в идентификаторах  [new]
hvlad
Member

Откуда:
Сообщений: 11578
voledy
Хотя в Firebird можно...
Как обычно : читая книгу увидел...

В Firebird в PSQL двоеточие перед идентификатором служит для отделения имён переменных\параметров от других идентификаторов.
14 ноя 08, 10:59    [6439445]     Ответить | Цитировать Сообщить модератору
 Re: Двоеточие в идентификаторах  [new]
locky
Member

Откуда: Харьков, Украина
Сообщений: 62034
hvlad,
а вы часом не из firebird team?
14 ноя 08, 12:35    [6440355]     Ответить | Цитировать Сообщить модератору
 Re: Двоеточие в идентификаторах  [new]
hvlad
Member

Откуда:
Сообщений: 11578
locky
hvlad,
а вы часом не из firebird team?
Да
14 ноя 08, 14:06    [6441234]     Ответить | Цитировать Сообщить модератору
 Re: Двоеточие в идентификаторах  [new]
locky
Member

Откуда: Харьков, Украина
Сообщений: 62034
hvlad
Да

О!
А раскажите мне, если имеете такую информацию, для зачем у вас там и \src\dsql\parse.y и \src\gpre\sql.cpp?
Первый, насколько я понял - yacc грамматика, второй - ручнописный javacc-like парсер.
И если я прав - зачем их два а не один?
14 ноя 08, 16:06    [6442400]     Ответить | Цитировать Сообщить модератору
 Re: Двоеточие в идентификаторах  [new]
hvlad
Member

Откуда:
Сообщений: 11578
locky
hvlad
Да

О!
А раскажите мне, если имеете такую информацию, для зачем у вас там и \src\dsql\parse.y и \src\gpre\sql.cpp?
Первый, насколько я понял - yacc грамматика, второй - ручнописный javacc-like парсер.
И если я прав - зачем их два а не один?
Если спросите в правильном форуме - обязательно расскажу :)
14 ноя 08, 16:19    [6442499]     Ответить | Цитировать Сообщить модератору
 Re: Двоеточие в идентификаторах  [new]
locky
Member

Откуда: Харьков, Украина
Сообщений: 62034
hvlad
Если спросите в правильном форуме - обязательно расскажу :)

Firebird-2.1.1.17910-0 - вопрос по parse.y и sql.cpp
Tnx.
14 ноя 08, 16:43    [6442677]     Ответить | Цитировать Сообщить модератору
 Re: Двоеточие в идентификаторах  [new]
Cat2
Member

Откуда: Petroskoi, Karjala
Сообщений: 145754
voledy
Alexander_Vi
Подскажите, есть ли в природе базы данных , позволяющие использовать двоеточие (:) в именах параметров ?
Идеально было бы если бы кто-нить ткнул меня носом в соотв. раздел ANSI SQL где было бы сказано, что : нельзя использовать в идентификаторах.



select id_comp id: from company 

Msg 156, Level 15, State 1, Line 1
Incorrect syntax near the keyword 'from'.


MS SQL

USE Northwind

SELECT     CustomerID  [id:]
FROM         Customers

ALFKI
ANATR
ANTON
AROUT
BERGS
BLAUS
BLONP
BOLID
BONAP
BSBEV
CACTU
CENTC
CHOPS
CONSH
DRACD
DUMON
EASTC
ERNSH
FISSA
FOLIG
FOLKO
FRANK
FRANR
FRANS
FURIB
GALED
GODOS
KOENE
LACOR
LAMAI
LEHMS
MAGAA
MAISD
MORGK
NORTS
OCEAN
OTTIK
PARIS
PERIC
PICCO
PRINI
QUICK
RANCH
REGGC
RICSU
ROMEY
SANTG
SEVES
SIMOB
SPECD
SUPRD
TOMSP
TORTU
VAFFE
VICTE
VINET
WANDK
WARTH
WILMK
WOLZA
OLDWO
BOTTM
LAUGB
LETSS
HUNGO
GROSR
SAVEA
ISLAT
LILAS
THECR
RATTC
LINOD
GREAL
HUNGC
LONEP
THEBI
MEREP
HANAR
QUEDE
RICAR
COMMI
FAMIA
GOURL
QUEEN
TRADH
WELLI
HILAA
LAZYK
TRAIH
WHITC
SPLIR
14 ноя 08, 21:13    [6443854]     Ответить | Цитировать Сообщить модератору
 Re: Двоеточие в идентификаторах  [new]
Cat2
Member

Откуда: Petroskoi, Karjala
Сообщений: 145754
hvlad
locky
hvlad,
а вы часом не из firebird team?
Да

Чем дальше, тем мне больше мне firebird team жальче.
14 ноя 08, 21:18    [6443867]     Ответить | Цитировать Сообщить модератору
 Re: Двоеточие в идентификаторах  [new]
hvlad
Member

Откуда:
Сообщений: 11578
Cat2
Чем дальше, тем мне больше мне firebird team жальче.
Это такой глупый развод на флейм ? Не выйдет
14 ноя 08, 22:53    [6444129]     Ответить | Цитировать Сообщить модератору
 Re: Двоеточие в идентификаторах  [new]
Cat2
Member

Откуда: Petroskoi, Karjala
Сообщений: 145754
hvlad
Это такой глупый развод на флейм ? Не выйдет

Я просто подсказал по вопросу в заглавном топике и посочувствовал.
14 ноя 08, 23:20    [6444189]     Ответить | Цитировать Сообщить модератору
 Re: Двоеточие в идентификаторах  [new]
Alexander_Vi
Guest
hvlad
Bogdanov Andrey
Ну почему же. Вот, например, в Oracle двоеточие можно использовать где угодно, хоть в именах объектов, хоть в переменных, хоть в параметрах
С квотированными идентификаторами, думаю, где угодно можно использовать что угодно :)


Есть ли какой нибудь символ, который нельзя использовать в именах параметров ( даже с квотированными идентификаторами ) ?
15 ноя 08, 00:53    [6444454]     Ответить | Цитировать Сообщить модератору
 Re: Двоеточие в идентификаторах  [new]
SergSuper
Member

Откуда: SPb
Сообщений: 5488
Alexander_Vi
Есть ли какой нибудь символ, который нельзя использовать в именах параметров ( даже с квотированными идентификаторами ) ?
а с какой целью спрашиваете? такое ощущение что какую-то пакость удумали сделать
15 ноя 08, 01:12    [6444492]     Ответить | Цитировать Сообщить модератору
 Re: Двоеточие в идентификаторах  [new]
hvlad
Member

Откуда:
Сообщений: 11578
Alexander_Vi
hvlad
Bogdanov Andrey
Ну почему же. Вот, например, в Oracle двоеточие можно использовать где угодно, хоть в именах объектов, хоть в переменных, хоть в параметрах
С квотированными идентификаторами, думаю, где угодно можно использовать что угодно :)


Есть ли какой нибудь символ, который нельзя использовать в именах параметров ( даже с квотированными идентификаторами ) ?




5.2 <token> and <separator>

<delimited identifier> ::=
<double quote> <delimited identifier body> <double quote>

<delimited identifier body> ::=
<delimited identifier part>...

<delimited identifier part> ::=
<nondoublequote character>
| <doublequote symbol>

<nondoublequote character> ::=
!! See the Syntax Rules.

<doublequote symbol> ::=
"" !! two consecutive double quote characters

Syntax Rules
...
6) A <nondoublequote character> is any character of the source language character set other than a <double quote>.
15 ноя 08, 01:29    [6444527]     Ответить | Цитировать Сообщить модератору
 Re: Двоеточие в идентификаторах  [new]
hvlad
Member

Откуда:
Сообщений: 11578
Cat2
hvlad
Это такой глупый развод на флейм ? Не выйдет

Я просто подсказал по вопросу в заглавном топике и посочувствовал.
Хорошо, что в Customers была не тысяча записей...
15 ноя 08, 01:31    [6444530]     Ответить | Цитировать Сообщить модератору
 Re: Двоеточие в идентификаторах  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54850

Alexander_Vi
Есть ли какой нибудь символ

Ну, я думаю - редкое API переживёт нуль в лбьом месте запроса, сключая
параметры.

Posted via ActualForum NNTP Server 1.4

15 ноя 08, 02:49    [6444606]     Ответить | Цитировать Сообщить модератору
 Re: Двоеточие в идентификаторах  [new]
Dmitry Arefiev
Member

Откуда:
Сообщений: 9993
Dimitry Sibiryakov
Ну, я думаю - редкое API переживёт нуль в лбьом месте запроса, сключая
параметры.

OCI позволяет в квотированном имене параметра иметь что угодно, например вот такую галиматью:
OCIStmtPrepare(..., PChar('SELECT * FROM "Region" WHERE RegionID > :"'#0'"'), ...)
В остальном, имя параметра, если оно доходит до СУБД, а не используется только библиотекой
доступа к данным (ODBC, например), подчиняется синтаксическим правилам идентификаторов
этой СУБД, ИМХО ...
15 ноя 08, 10:27    [6444716]     Ответить | Цитировать Сообщить модератору
 Re: Двоеточие в идентификаторах  [new]
Микросекунда
Member

Откуда: Из предыдущего мгновения
Сообщений: 1905
CREATE TABLE TTT (
    "ID













2"  INTEGER
);
FB 2.1 + IBExpert проглатывает и даже работает вроде :)
15 ноя 08, 12:07    [6444799]     Ответить | Цитировать Сообщить модератору
 Re: Двоеточие в идентификаторах  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54850

Dmitry Arefiev

PChar('SELECT * FROM "Region" WHERE RegionID > :"'#0'"')

А как оно отличает этот нуль от конца PChar-а? Ещё один параметр на длину?

Posted via ActualForum NNTP Server 1.4

15 ноя 08, 12:13    [6444804]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Сравнение СУБД Ответить