Часть полного текста документа:Язык модулей SQL 7.1 () Функция Определяет модуль. Формат ::= [...] < procedure > ... ::= LANGUAGE { COBOL | FORTRAN | PASCAL | PLI } ::= AUTHORIZATION ::= Синтаксические правила 1. Для каждого () в () должна существовать ровно одна () в этом (), которая содержит () со спецификацией (), объявленного в (). 2. () должен быть ассоциирован с прикладной программой при ее выполнения. Прикладная программа должна быть ассоциирована не более чем с одним (). Общие правила 1. Если () () специфицирует COBOL (соответственно FORTRAN, PASCAL, PLI) и если агент, выполняющий вызов () этого (), не является стандартной программой на языке COBOL (соответственно FORTRAN, Pascal, PL/1), то результат неопределен. 2. После выполнения агентом на языке программирования последнего вызова () в () неявно выполняется () или (). Выбор одного из этих () определяется реализацией. Если имеет место невосстанавлваемая ошибка, то СУБД должна выполнить (). 7.2. () Функция Задает имя (). Формат ::= MODULE [] Синтаксические правила 1. () должно отличаться от () любого другого () в том же окружении. Понятие окружения определяется в реализации. Общие правила 1. () определяет необязательный () как (), определяющее содержащий () в данном окружении. 7.3. () Функция Определяет процедуру и оператор языка SQL. Формат ::= PROCEDURE ...; ; ::= | ::= SQLCODE ::= | | | | | | | | | | Синтаксические правила 1. () должно отличаться от () любой другой () в содержащем модуле. 2. в каждом () в () должно отличаться от () любого другого () в этой процедуры. 3. Любое (), содержащееся в () (), должно быть специфицировано в () этой процедуры. 4. Если () в () совпадает с () в () (), содержащей этот (), то (), которая содержит это (), должна содержать (). 5. Законный вызов () должен поставлять n параметров, где n - число () в данной (). 6. Процедура должна содержать ровно один (). На параметр, соответствующий параметру SQLCODE, ссыля4аются я0как я4на параметр SQLCODE. 7. () процедуры явля () содержащего (). 8. a) Если () специфицирует COBOL, то: o i) Типом параметра SQLCODE должен быть COMPUTATIONAL S9(PC), где PC - определяемая реализацией точность, большая или равная 4. ii) Любой () в () должен быть CHARACTER или NUMERIC. iii) Если i-ое () специфицирует () CHARACTER(L) c некоторой () L, то тип i-ого параметра должен быть буквенно-цифровым типом языка COBOL длины L. iv) Если i-ое () специфицирует () NUMERIC(P,S) c некоторыми () P и () S, то типом i-ого параметра должен быть тип языка COBOL usage DISPLAY SIGN LEADING SEPARATE со следующим PICTURE: 1. Если S=P, то PICTURE: "S", за которым следует "V", и затем P экземпляров "9". 2. Если P > S > 0, то PICTURE: "S", за которым следуют P-S экземпляров "9", затем "V" и затем S экземпляров "9". 3. Если S=O, то PICTURE: "S", за которым следуют P экземпляров "9" и затем необязательное "V". b) Если () специфицирует FORTRAN, то: o i) Тип параметра SQLCODE должен быть типом INTEGER языка FORTRAN. ii) Любой () в должен быть CHARACTER, INTEGER, REAL или DOUBLE PRECISION. iii) Если i-ое () специфицирует () CHARACTER(L) с некоторой () L, то тип i-ого параметра должен быть типом CHARACTER языка FORTRAN с длиной L. ............ |