Зарезервированные слова

0 голосов
спросил 30 Март, 05 от valery (7,040 баллов) в категории Программные продукты Esri

Есть ли в природе список зарезервированных имен полей базы геоданных?

 

5 Ответы

0 голосов
ответил 08 Апр, 05 от igorstr (6,690 баллов)

Для тех кто еще не в курсе

Определение: (1) Слово, имеющее специальное значение в конкретном программном обеспечении или операционной системе. (2) В SQL - набор слов, зарезервированных для применения в операторах SQL; вы не можете использовать зарезервированное слово в качестве имени объекта базы данных.

Также их нельзя использовать в качестве названий полей таблиц БД. В качестве алиасов-пожалуйста! Этот список зависит от используемой СУБД.

Нашел зарезервированные слова Oracle7 и PL/SQL (для Microsoft Jet, которая используется в персональной БГД он будет другой, его не нашел, только ссылки на книги его содержащие).

SQL резервные слова (слова отмеченные * используются также в PL/SQL): ACCESS* DEFAULT* INTEGER OPTION* START* ADD* DELETE* INTERSECT* OR* SUCCESSFUL ALL* DESC* INTO* ORDER* SYNONYM ALTER* DISTINCT* IS* PCTFREE* SYSDATE AND* DROP* LEVEL* PRIOR* TABLE* ANY* ELSE* LIKE* PRIVILEGES THEN* AS* EXCLUSIVE LOCK PUBLIC* TO* ASC* EXISTS* LONG RAW TRIGGER AUDIT FILE MAXEXTENTS RENAME* UID BETWEEN* FLOAT MINUS* RESOURCE* UNION* BY* FOR* MODE REVOKE UNIQUE* CHAR* FROM* MODIFY ROW UPDATE* CHECK* GRANT* NOAUDIT ROWID USER CLUSTER* GROUP* NOCOMPRESS* ROWLABEL VALIDATE COLUMN HAVING* NOT* ROWNUM* VALUES* COMMENT IDENTIFIED* NOWAIT ROWS VARCHAR* COMPRESS* IMMEDIATE NULL* SELECT* VARCHAR2* CONNECT* IN* NUMBER* SESSION VIEW* CREATE* INCREMENT OF* SET* WHENEVER CURRENT* INDEX* OFFLINE SHARE WHERE* DATE* INITIAL ON* SIZE* WITH* DECIMAL INSERT ONLINE SMALLINT PL/SQL резервные слова ABORT CREATE GOTO PACKAGE SUM ACCEPT CURRENT GRANT PARTITION TABAUTH ACCESS CURSOR GROUP PCTFREE TABLE ADD DATABASE HAVING PRAGMA TABLES ALL DATA_BASE IDENTIFIED PRIOR TASK ALTER DATE IF PRIVATE TERMINATE AND DBA IN PROCEDURE THEN ANY DEBUGOFF INDEX PUBLIC TO ARRAY DEBUGON INDEXES RAISE TRUE AS DECLARE INDICATOR RANGE TYPE ASC DEFAULT INSERT RECORD UNION ASSERT DEFINITION INTERSECT RELEASE UNIQUE ASSIGN DELAY INTO REM UPDATE AT DELETE IS RENAME USE AUTHORIZA DELTA LEVEL RESOURCE VALUES TION DESC LIKE RETURN VARCHAR AVG DIGITS LIMITED REVERSE VARCHAR2 BEGIN DISPOSE LOOP REVOKE VARIANCE BETWEEN DISTINCT MAX ROLLBACK VIEW BODY DO MIN ROWNUM VIEWS BOOLEAN DROP MINUS ROWTYPE WHEN BY ELSE MOD RUN WHERE CASE ELSIF NEW SAVEPOINT WHILE CHAR END NOCOMPRESS WSCHEMA WITH CHAR_BASE ENTRY NOT SELECT WORK CHECK EXCEPTION NULL SEPARATE XOR CLOSE EXCEP NUMBER SET CLUSTER TION_INIT NUMBER_BASE SIZE CLUSTERS EXISTS OR SPACE COLAUTH EXIT ON SQL COLUMNS FALSE OPEN SQLCODE COMMIT FETCH OPTION SQLERRM COMPRESS FOR OR START CONNECT FORM ORDER STATEMENT CONSTANT FROM OTHERS STDDEV COUNT FUNCTION OUT SUBTYPE CRASH GENERIC
0 голосов
ответил 08 Апр, 05 от igorstr (6,690 баллов)
Зарезервированные слова Jet SQL
 
Приведенные здесь таблицы предназначены для сравнения зарезервированных слов ANSI SQL и Jet SQL.
Ниже перечисляются зарезервированные слова Jet SQL, которые идентичны зарезервированным словам ANSI SQL (знаком звездочки помечены слова, которые доступны только в режиме ANSI SQL-92):
      
ADD  COMMIT*  FETCH*  MAX  ROLLBACK*  ALL  CONSTRAINT  FROM  MIN  SELECT  ALTER  COUNT  FOREIGN  NOT  SET  ANY  CREATE  GRANT* NULL  SOME  ALIAS  CREATE VIEW*  HAVING  ON  TRANSACTION*  AS  CURRENT*  IN  OR  UNION  ASC  CURSOR*  INDEX  ORDER  UNIQUE  AUTHORAZATI ON*  DECLARE*  INNER  OUTER  UPDATE    AVG  DELETE  INSERT  PARAMETERS  VALUE  BEGIN*  DESC  INTO  PRIMARY  VALUES  BETWEEN  DISALLOW  IS  PRIVILEGES*  WHERE  BY  DISTINCT  JOIN  PROCEDURE  WORK*  CHECK*  DROP  KEY  REFERENCES  CLOSE*  DROP VIEW*  LEFT  REVOKE*  COLUMN  EXISTS  LIKE  RIGHT
 
Зарезервированные слова, обозначающие типы данных, не включены в этот список, т. к. соответствие типов данных ANSI SQL и Jet SQL приводится ниже, в табл. 8.6. Большинство операторов сравнения в ANSI SQL и Jet SQL совпадают: =, <, <=, > и =>. Исключение составляет оператор неравенства. Оператору неравенства ! = в ANSI SQL соответствует оператор <> в Jet SQL.
Как и в ANSI SQL, зарезервированное слово Jet SQL IN может быть использовано для задания списка значений в предложении WHERE или списка, созданного подчиненным запросом. Оператор IN также может использоваться для идентификации таблицы в другой базе данных.
Хотя в последней версии Jet SQL появились новые инструкции, связанные с обработкой транзакций (раньше они реализовывались с помощью процедур VBA), тем не менее существует отличие в механизме выполнения транзакции от рекомендуемого ANSI SQL: автоматический запуск транзакции невозможен. Чтобы начать транзакцию, ее необходимо явно запустить с помощью инструкции BEGIN TRANSACTION; допускается пять уровней вложения транзакций. Чтобы запустить вложенную транзакцию, воспользуйтесь инструкцией BEGIN TRANSACTION в контексте существующей транзакции; для присоединенных (связанных) таблиц транзакции не поддерживаются.
В обычном режиме ряд инструкций ANSI SQL не поддерживается, однако их можно реализовать другими средствами Access: меню, кнопками, диалоговыми окнами. В табл. 8.3 приведен список инструкций ANSI SQL и эквивалентные им средства Access.
 
Таблица  Зарезервированные слова ANSI SQL, не поддерживаемые Access SQL
   
 Зарезервированное слово  Эквивалент в Access
 AUTHORIZATION  Диалоговое окно прав доступа  
 BEGIN  Метод Access VBA BeginTrans
 CHECK  Свойство Условие на значение поля таблицы  
 CLOSE  Кнопка системного меню Закрыть  
 COMMIT  Метод Access VBA CommitTrans
 CREATE VIEW  Режим конструктора запросов и фильтры
 CURRENT  Запрос в режиме таблицы, области выделения записи
 CURSOR  Запрос в режиме таблицы
 DECLARE  Запрос в режиме таблицы (курсор поддерживается автоматически)
 DROP VIEW  Режим конструктора запросов
 FETCH  Поля в форме или отчете
 GRANT, PRIVILEGES, REVOKE  Диалоговое окно прав доступа
 ROLLBACK  Метод Access VBA RollbackTrans
 TRANSACTION  Методы транзакций в Access VBA
 VALUES  Значения, введенные в таблицы или формы
 WORK  Метод Access VBA BeginTrans
0 голосов
ответил 09 Апр, 05 от valery (7,040 баллов)

Спасибо, от тех, кто не в курсе =)

Интересует список именно ESRI ключевых слов.

0 голосов
ответил 11 Апр, 05 от igorstr (6,690 баллов)

Valery, да я не о вас "не в курсе". Просто есть такие счастливчики, которые еще не натыкались на эти зарезервированные слова. По поводу зарезервированных слов ESRI запрошу, как получу ответ - оглашу.  

Думаю, что этот список никоим образом не отличается от списка зарезервированных слов используемой БД. Пока это подтверждалось. Например, имя поля type, с завидной регулярностью встречающееся в атрибутике карт лежащих в персональной БГД (mxd-файл, БД - Microsoft Jet) напрочь отказывается быть таковым в БГД в ArcSDE-Oracle - класс объектов не перегружается.

0 голосов
ответил 11 Апр, 05 от valery (7,040 баллов)

Есть специфичный набор имен полей, которые принимает 3-ка в шейпах, принимает 8-ка в шейпах и не принимает в геобазах - то есть просто добавляет подчерк в конец имени поля. А девятка еще жесче к шейпам, и добавляет подчерки даже там.

Как-то раз столкнулся даже с тем, что поле переименовывалось в его русский аналог-к сожалению, не могу точно указать условия возникновения этой бяки.

Поля типа Time, Date, Day. Именно о таких полях вопрос.
Мне предложили неплохой выход проверки этого дела.
http://forums.esri.com/Thread.asp?c=93&f=993&t=154120#450803
Но это уже на стадии свершившегося. Хотелось бы знать заранее, на стадии рекомендаций к проектированию баз геоданных.

Так что вопрос снят частично. Спасибо.

Добро пожаловать на сайт Вопросов и Ответов, где вы можете задавать вопросы по GIS тематике и получать ответы от других членов сообщества.
...