SQL*Module for Ada Programmer's Guide
Release 8.0






Prev Next


This book is a comprehensive user's guide and reference for SQL*Module, an Oracle application development tool.

This Guide includes a complete description of Module Language, an ANSI/ISO SQL standard for developing applications that access data stored in a relational database. Module Language uses parameterized procedures to encapsulate SQL statements. The procedures can then be called from an Ada application.

This Guide also describes how you can use SQL*Module to call PL/SQL procedures stored in an Oracle database. A number of complete examples using Module Language, Ada code, and stored database procedures are provided.

Who Should Read This Guide?

This Guide is for systems architects, analysts, and developers who are writing large-scale applications that access an Oracle Server. Chapter 1 of this Guide can also be used by managers who need to determine if SQL*Module is an appropriate tool for a planned project.

To use this Guide effectively, you need a working knowledge of the following topics:

Familiarity with SQL-standard Module Language is not a prerequisite. This Guide fully documents Module Language.

Standards Conformance

SQL*Module conforms to the American National Standards Institute (ANSI) and International Standards Organization (ISO) standards for Module Language. This includes complete conformance with Chapter 7 of ANSI document X3.135-1989, Database Language SQL with Integrity Enhancement.

In addition, SQL*Module conforms to the "Entry SQL" subset of the SQL92 standard, as defined in Chapter 12 of the ANSI Document X3.135-1992.

Note: SQL92 is known officially as International Standard ISO/IEC 9075:1992, Database Language SQL.

SQL*Module supports the Ada83 language standard for Ada.

Oracle has also implemented extensions to the SQL language and to Module Language. This Guide describes both the SQL standard Module Language and the complete set of Oracle extensions. SQL*Module provides an option, called the FIPS flagger, which flags all non-standard extensions to SQL and to Module Language, as mandated by the Federal Information Processing Standard for Database Language SQL, FIPS publication 127-1. This publication is available from

National Technical Information Service

US Department of Commerce

Springfield VA 22161


How the SQL*Module Guide Is Organized

A summary of what you will find in each chapter and appendix follows.

Chapter 1, "Introduction to SQL*Module"

This chapter introduces you to Oracle's Module Language compiler. You learn what SQL*Module is, when it is appropriate to use SQL*Module for a project, and what features the SQL*Module compiler offers. The chapter also provides an overview showing how to develop an application using SQL*Module.

Chapter 2, "Module Language"

This chapter documents SQL standard Module Language, and also describes the Oracle extensions to the Module Language standard.

Chapter 3, "Accessing Stored Procedures"

This chapter describes how to use SQL*Module to generate code output files that contain interface procedures (stubs) used to call PL/SQL procedures stored in an Oracle database.

Chapter 4, "Developing the Ada Application"

This chapter describes the steps you take to develop an application using SQL*Module. This chapter also includes a sample application in Module Language. The Module Language code and the SQL scripts that build the sample database are listed; they are also available on-line, in the demo directory.

Chapter 5, "Running SQL*Module"

This chapter tells you how to invoke SQL*Module, what input and output files are required and are generated, and describes all the command-line options.

Chapter 6, "Demonstration Programs"

This chapter describes Ada-specific aspects of using SQL*Module, including parameter passing conventions and binding of Ada datatypes to SQL datatypes. This chapter also contains several sample programs that call stored procedures and Module Language procedures.

Appendix A, "New Features"

This appendix provides lists of new statements and other new features in release 8.0.

Appendix B, "Module Language Syntax"

This appendix presents the formal syntax of Module Language using syntax diagrams.

Appendix C, "Reserved Words"

This appendix lists the keywords and reserved words that you cannot use for names of modules, cursors, procedures, and procedure parameters in a Module Language application.

Appendix D, "SQLSTATE Codes"

This appendix contains a table of the SQLSTATE codes.

Appendix E, "System-Specific References"

This appendix contains a list of all system-dependent aspects of SQL*Module for Ada that are mentioned elsewhere in this guide.

Conventions Used in This Guide

Important terms being defined for the first time are italicized. In running text, uppercase is used for SQL keywords and all database objects, such as table and column names.

Typographic case in examples of host or server language code follows the usual conventions of the language.


The style of the Ada Language Reference Manual is generally followed: reserved words are lowercase, identifiers are uppercase. In running text, reserved words are bold and identifiers are uppercase. Filenames are lowercase.


The style of the PL/SQL User's Guide and Reference is followed. In code examples, keywords are uppercase, identifiers are lowercase. Names of supplied packages (for example, DBMS_OUTPUT) are uppercase. In running text, identifiers are lowercase italic, and keywords and system packages are uppercase.


The following notational conventions are used in example syntax descriptions:

[ ]


Square brackets indicate that the enclosed items are optional. When entering the item (on a command line, for example), you do not type the []'s.


{ }


Braces indicate that one, and only one, of the enclosed items is required.




A vertical bar is used to separate options within brackets or braces.


. . .


An ellipsis indicates that the preceding argument or parameter can be repeated, or, in code examples, that statements or clauses that are not relevant to the point at hand are missing.



Copyright © 1997 Oracle Corporation.

All Rights Reserved.