Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / Двоеточие в идентификаторах / 25 сообщений из 27, страница 1 из 2
14.11.2008, 01:10
    #35653242
Alexander_Vi
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Двоеточие в идентификаторах
Подскажите, есть ли в природе базы данных , позволяющие использовать двоеточие (:) в именах параметров ?
Идеально было бы если бы кто-нить ткнул меня носом в соотв. раздел ANSI SQL где было бы сказано, что : нельзя использовать в идентификаторах.
...
Рейтинг: 0 / 0
14.11.2008, 01:13
    #35653243
voledy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Двоеточие в идентификаторах
Alexander_ViПодскажите, есть ли в природе базы данных , позволяющие использовать двоеточие (:) в именах параметров ?
Идеально было бы если бы кто-нить ткнул меня носом в соотв. раздел ANSI SQL где было бы сказано, что : нельзя использовать в идентификаторах.


Код: plaintext
select id_comp id: from company 

Msg 156, Level 15, State 1, Line 1
Incorrect syntax near the keyword 'from'.
...
Рейтинг: 0 / 0
14.11.2008, 01:15
    #35653245
voledy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Двоеточие в идентификаторах
Alexander_ViПодскажите, есть ли в природе базы данных , позволяющие использовать двоеточие (:) в именах параметров ?
Идеально было бы если бы кто-нить ткнул меня носом в соотв. раздел ANSI SQL где было бы сказано, что : нельзя использовать в идентификаторах.

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


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
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
...
Рейтинг: 0 / 0
14.11.2008, 01:17
    #35653246
voledy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Двоеточие в идентификаторах
но только в ХП, да тригерах...

---------
:o)=|=<
...
Рейтинг: 0 / 0
14.11.2008, 05:51
    #35653301
Alexander_Vi
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Двоеточие в идентификаторах
voledyно только в ХП, да тригерах...

---------
:o)=|=<

Ок, тогда немного сузим область : меня интересуют только имена параметров ... вроде как по опыту использовать : в параметрах никакая база не дает, но хотелось бы какого-нить документального подтверждения ( как я уже писал выше ANSI SQL было бы супер, только чето-то не могу найти )

Модератор: Тема перенесена из форума "Microsoft SQL Server".
...
Рейтинг: 0 / 0
14.11.2008, 10:25
    #35653589
Bogdanov Andrey
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Двоеточие в идентификаторах
Alexander_Viвроде как по опыту использовать : в параметрах никакая база не дает
Ну почему же. Вот, например, в Oracle двоеточие можно использовать где угодно, хоть в именах объектов, хоть в переменных, хоть в параметрах.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
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";

Таблица удалена.
...
Рейтинг: 0 / 0
14.11.2008, 10:56
    #35653696
hvlad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Двоеточие в идентификаторах
Bogdanov AndreyНу почему же. Вот, например, в Oracle двоеточие можно использовать где угодно, хоть в именах объектов, хоть в переменных, хоть в параметрахС квотированными идентификаторами, думаю, где угодно можно использовать что угодно :)
...
Рейтинг: 0 / 0
14.11.2008, 10:59
    #35653707
hvlad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Двоеточие в идентификаторах
voledyХотя в Firebird можно... Как обычно : читая книгу увидел...

В Firebird в PSQL двоеточие перед идентификатором служит для отделения имён переменных\параметров от других идентификаторов.
...
Рейтинг: 0 / 0
14.11.2008, 12:35
    #35654070
locky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Двоеточие в идентификаторах
hvlad,
а вы часом не из firebird team?
...
Рейтинг: 0 / 0
14.11.2008, 14:06
    #35654390
hvlad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Двоеточие в идентификаторах
lockyhvlad,
а вы часом не из firebird team?Да
...
Рейтинг: 0 / 0
14.11.2008, 16:06
    #35654862
locky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Двоеточие в идентификаторах
hvladДа
О!
А раскажите мне, если имеете такую информацию, для зачем у вас там и \src\dsql\parse.y и \src\gpre\sql.cpp?
Первый, насколько я понял - yacc грамматика, второй - ручнописный javacc-like парсер.
И если я прав - зачем их два а не один?
...
Рейтинг: 0 / 0
14.11.2008, 16:19
    #35654898
hvlad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Двоеточие в идентификаторах
lockyhvladДа
О!
А раскажите мне, если имеете такую информацию, для зачем у вас там и \src\dsql\parse.y и \src\gpre\sql.cpp?
Первый, насколько я понял - yacc грамматика, второй - ручнописный javacc-like парсер.
И если я прав - зачем их два а не один?Если спросите в правильном форуме - обязательно расскажу :)
...
Рейтинг: 0 / 0
14.11.2008, 16:43
    #35654997
locky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Двоеточие в идентификаторах
hvladЕсли спросите в правильном форуме - обязательно расскажу :)
Firebird-2.1.1.17910-0 - вопрос по parse.y и sql.cpp
Tnx.
...
Рейтинг: 0 / 0
14.11.2008, 21:13
    #35655482
Cat2
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Двоеточие в идентификаторах
voledyAlexander_ViПодскажите, есть ли в природе базы данных , позволяющие использовать двоеточие (:) в именах параметров ?
Идеально было бы если бы кто-нить ткнул меня носом в соотв. раздел ANSI SQL где было бы сказано, что : нельзя использовать в идентификаторах.


Код: plaintext
select id_comp id: from company 

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

MS SQL

Код: plaintext
1.
2.
3.
4.
USE Northwind

SELECT     CustomerID  [id:]
FROM         Customers

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
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
...
Рейтинг: 0 / 0
14.11.2008, 21:18
    #35655484
Cat2
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Двоеточие в идентификаторах
hvladlockyhvlad,
а вы часом не из firebird team?Да
Чем дальше, тем мне больше мне firebird team жальче.
...
Рейтинг: 0 / 0
14.11.2008, 22:53
    #35655588
hvlad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Двоеточие в идентификаторах
Cat2Чем дальше, тем мне больше мне firebird team жальче.Это такой глупый развод на флейм ? Не выйдет
...
Рейтинг: 0 / 0
14.11.2008, 23:20
    #35655611
Cat2
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Двоеточие в идентификаторах
hvladЭто такой глупый развод на флейм ? Не выйдет
Я просто подсказал по вопросу в заглавном топике и посочувствовал.
...
Рейтинг: 0 / 0
15.11.2008, 00:53
    #35655693
Alexander_Vi
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Двоеточие в идентификаторах
hvladBogdanov AndreyНу почему же. Вот, например, в Oracle двоеточие можно использовать где угодно, хоть в именах объектов, хоть в переменных, хоть в параметрахС квотированными идентификаторами, думаю, где угодно можно использовать что угодно :)

Есть ли какой нибудь символ, который нельзя использовать в именах параметров ( даже с квотированными идентификаторами ) ?
...
Рейтинг: 0 / 0
15.11.2008, 01:12
    #35655702
SergSuper
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Двоеточие в идентификаторах
Alexander_ViЕсть ли какой нибудь символ, который нельзя использовать в именах параметров ( даже с квотированными идентификаторами ) ? а с какой целью спрашиваете? такое ощущение что какую-то пакость удумали сделать
...
Рейтинг: 0 / 0
15.11.2008, 01:29
    #35655712
hvlad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Двоеточие в идентификаторах
Alexander_VihvladBogdanov AndreyНу почему же. Вот, например, в Oracle двоеточие можно использовать где угодно, хоть в именах объектов, хоть в переменных, хоть в параметрахС квотированными идентификаторами, думаю, где угодно можно использовать что угодно :)

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


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
 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>.
...
Рейтинг: 0 / 0
15.11.2008, 01:31
    #35655713
hvlad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Двоеточие в идентификаторах
Cat2hvladЭто такой глупый развод на флейм ? Не выйдет
Я просто подсказал по вопросу в заглавном топике и посочувствовал.Хорошо, что в Customers была не тысяча записей...
...
Рейтинг: 0 / 0
15.11.2008, 02:49
    #35655730
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Двоеточие в идентификаторах
Alexander_ViЕсть ли какой нибудь символ

Ну, я думаю - редкое API переживёт нуль в лбьом месте запроса, сключая
параметры.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
15.11.2008, 10:27
    #35655782
Dmitry Arefiev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Двоеточие в идентификаторах
Dimitry SibiryakovНу, я думаю - редкое API переживёт нуль в лбьом месте запроса, сключая
параметры.

OCI позволяет в квотированном имене параметра иметь что угодно, например вот такую галиматью:
Код: plaintext
OCIStmtPrepare(..., PChar('SELECT * FROM "Region" WHERE RegionID > :"'# 0 '"'), ...)
В остальном, имя параметра, если оно доходит до СУБД, а не используется только библиотекой
доступа к данным (ODBC, например), подчиняется синтаксическим правилам идентификаторов
этой СУБД, ИМХО ...
...
Рейтинг: 0 / 0
15.11.2008, 12:07
    #35655832
Микросекунда
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Двоеточие в идентификаторах
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
CREATE TABLE TTT (
    "ID













2"  INTEGER
);
FB 2.1 + IBExpert проглатывает и даже работает вроде :)
...
Рейтинг: 0 / 0
15.11.2008, 12:13
    #35655835
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Двоеточие в идентификаторах
Dmitry Arefiev
Код: plaintext
PChar('SELECT * FROM "Region" WHERE RegionID > :"'# 0 '"')

А как оно отличает этот нуль от конца PChar-а? Ещё один параметр на длину?
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / Двоеточие в идентификаторах / 25 сообщений из 27, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]