NonStop SQL/MP Reference Manual
Table Of Contents
- What’s New in This Manual
- About This Manual
- A
- Access Options
- ADD DEFINE Command
- AGGREGATE Functions
- Alias
- ALLOCATE File Attribute
- ALTER CATALOG Statement
- ALTER COLLATION Statement
- ALTER DEFINE Command
- ALTER INDEX Statement
- ALTER PROGRAM Statement
- ALTER TABLE Statement
- ALTER VIEW Statement
- APPEND Command
- APPENDCANCEL Command
- APPENDRESTART Command
- AS Clause
- AS DATE/TIME Clause
- ASCII Character Set
- AUDIT File Attribute
- AUDITCOMPRESS File Attribute
- Audited Tables
- AVG Function
- B
- C
- CANCEL Command
- CASE Expression
- CAST Function
- CATALOG Command
- Catalogs
- CATALOGS Table
- CENTER_REPORT Option
- Character Data Types
- Character Expressions
- Character Sets
- CHAR_LENGTH Function
- CLEANUP Command
- CLEARONPURGE File Attribute
- CLOSE Statement
- Clustering Keys
- COLLATE Clause
- Collation Definitions
- Column Identifier
- Columns
- COLUMNS Table
- COMMENT Statement
- Comments
- COMMENTS Table
- COMMIT Option
- COMMIT WORK Statement
- Comparison Predicate
- COMPUTE_TIMESTAMP Function
- CONCAT Clause
- Concurrency
- Constraints
- CONSTRNT Table
- CONTINUE Statement
- CONTROL EXECUTOR Directive
- CONTROL QUERY Directive
- CONTROL TABLE Directive
- CONVERT Command
- CONVERTTIMESTAMP Function
- COPY Command
- Correlation Names
- COUNT Function
- CPRLSRCE Table
- CPRULES Table
- CREATE CATALOG Statement
- CREATE COLLATION Statement
- CREATE CONSTRAINT Statement
- CREATE INDEX Statement
- CREATE SYSTEM CATALOG Command
- CREATE TABLE Statement
- CREATE VIEW Statement
- CURRENT Function
- CURRENT_TIMESTAMP Function
- Cursors
- C89
- D
- Data Dictionary
- Data Types
- DATE Data Type
- DATE_FORMAT Option
- DATE-TIME Data Types
- DATE-TIME Functions
- DATE-TIME Literals
- DATEFORMAT Function
- DATETIME Data Type
- DAYOFWEEK Function
- DCL (Data Control Language) Statements
- DCOMPRESS File Attribute
- DDL (Data Definition Language) Statements
- Deadlocks
- DECIMAL_POINT Option
- DECLARE CURSOR Statement
- DEFAULT Clause
- DEFINEs
- DELETE DEFINE Command
- DELETE Statement
- DESCRIBE INPUT Statement
- DESCRIBE Statement
- Detail Alias
- DETAIL Command
- DISPLAY STATISTICS Command
- DISPLAY USE OF Command
- DISTINCT Clause
- DML (Data Manipulation Language) Statements
- DOWNGRADE CATALOG Command
- DOWNGRADE SYSTEM CATALOG Command
- DROP Statement
- DROP SYSTEM CATALOG Command
- DSL (Data Status Language) Statements
- DSLACK File Attribute
- DUP Command
- Dynamic SQL
- E
- F
- G
- H
- I
- ICOMPRESS File Attribute
- IF/THEN/ELSE Clause
- IN Predicate
- INCLUDE SQLCA Directive
- INCLUDE SQLDA Directive
- INCLUDE SQLSA Directive
- INCLUDE STRUCTURES Directive
- Index Keys
- INDEXES Table
- Indicator Variables and Indicator Parameters
- INFO DEFINE Command
- INITIALIZE SQL Command
- INSERT Statement
- INTERVAL Data Type
- INTERVAL Literals
- INVOKE Directive and Command
- ISLACK File Attribute
- J
- K
- L
- M
- N
- O
- P
- PAGE_COUNT Option
- PAGE FOOTING Command
- PAGE_LENGTH Option
- PAGE_NUMBER Function
- PAGE TITLE Command
- Parallel Index Loading
- Parameters
- PARTITION Clause
- Partitions
- PARTNS Table
- PERUSE Command
- Plans
- POSITION Function
- Predicates
- PREPARE Statement
- Primary Keys
- Print Item
- PROGID File Attribute
- Program Invalidation
- PROGRAMS Table
- Protection View
- PURGE Command
- PURGEDATA Command
- Q
- R
- RECLENGTH File Attribute
- RELEASE Statement
- REPORT FOOTING Command
- REPORT Option
- REPORT TITLE Command
- Report Writer
- Reserved Words
- RESET DEFINE Command
- RESET LAYOUT Command
- RESET PARAM Command
- RESET PREPARED Command
- RESET REPORT Command
- RESET SESSION Command
- RESET STYLE Command
- RESETBROKEN File Attribute
- RIGHT_MARGIN Option
- ROLLBACK WORK Statement
- ROWCOUNT Option
- S
- Sample Database
- SAVE Command
- Search Conditions
- SECURE Command
- SECURE File Attribute
- Security
- SELECT Statement
- SERIALWRITES File Attribute
- SET DEFINE Command
- SET DEFMODE Command
- SET LAYOUT Command
- SET PARAM Command
- SET SESSION Command
- SET STYLE Command
- SETSCALE Function
- Shorthand View
- SHOW CONTROL Command
- SHOW DEFINE Command
- SHOW DEFMODE Command
- SHOW LAYOUT Command
- SHOW PARAM Command
- SHOW PREPARED Command
- SHOW REPORT Command
- SHOW SESSION Command
- SHOW STYLE Command
- Similarity Checks
- SLACK File Attribute
- SPACE Option
- SQL Directive
- SQL Identifiers
- SQLCI
- SQLCI Commands
- SQLCODE
- SQLCOMP Command
- Standards Conformance
- Statements
- Static SQL
- Statistics
- Storage Management Foundation (SMF)
- String Functions
- String Literals
- Subqueries
- SUBSTRING Function
- SUBTOTAL Command
- SUBTOTAL_LABEL Option
- SUM Function
- Super ID
- Syskeys
- System Catalog
- SYSTEM Command
- System DEFINEs
- T
- U
- V
- W
- Z
- ! COMMAND
- =_AUDSERV_XSWAP_node DEFINE
- =_DEFAULTS DEFINE
- =_SORT_DEFAULTS DEFINE
- =_SQL_CAT_HEAP_LIMIT DEFINE
- =_SQL_CMP_DOUBLE_SBB_OFF DEFINE
- =_SQL_CMP_DOUBLE_SBB_ON DEFINE
- =_SQL_CMP_EQ_LIMIT DEFINE
- =_SQL_CMP_EVENT DEFINE
- =_SQL_CMP_EVENT_NO0 DEFINE
- =_SQL_CMP_NO_KS_MJOIN DEFINE
- =_SQL_cmp_node DEFINE
- =_SQL_EXE_DOUBLE_SHUTOFF DEFINE
- =_SQL_EXE_ESPS_CK_CMON DEFINE
- =_SQL_EXE_USE_SWAPVOL DEFINE
- =_SQL_MSG_node DEFINE
- =_SQL_RECGEN_node DEFINE
- =_SQL_TM_node_vol DEFINE
- Index
NonStop SQL/MP Reference Manual—142115
D-30
Using DEFINEs With SQL Programs
You normally supply DEFINEs at explicit SQL compilation for any DEFINE names
you use in static SQL statements. SQL attempts to resolve such DEFINE names
during explicit compilation, if possible (even though the names might be re-resolved
at load or execution time according to the rules that follow). If corresponding
DEFINEs do not exist, the SQL compiler issues a warning and produces a program
that, although valid, requires recompilation with appropriate DEFINE values. (SQL
can automatically recompile programs at run time, as discussed in the NonStop
SQL/MP programming manual for your host language. If you prohibit
recompilation, however—or if appropriate DEFINEs are still missing by the time
the statement executes—an error occurs.)
Dynamic SQL statements are not affected by explicit compilation, so there is no
reason to supply DEFINEs for those statements prior to execution.
For SQL programs executable from Guardian, you can use the EXPLAIN DEFINES
option on the SQLCOMP command to automatically generate an OBEY command
file that contains ADD DEFINE commands for the DEFINEs used in your program.
To generate the obey file in TACL obey format, use the OBEY FORM option.
You can use the command file to add the same DEFINEs again at run time. See the
NonStop SQL/MP programming manual for your host language for details.
•
DEFINEs required at execution time
To use DEFINEs in programs, you must inherit DEFINEs from your TACL or OSS
shell process or use system procedure calls to create DEFINEs within your program.
An error occurs unless a DEFINE exists at execution time for each DEFINE name
used in an executed statement. The DEFINE must exist at the time SQL resolves the
corresponding DEFINE name.
You can direct your program to access a different set of objects than the ones you
specified at compilation by supplying different DEFINE values at run time than at
compile time. Depending on the compilation options you specified, the similarity
between the objects, and the SIMILARITY CHECK attribute of the objects,
changing DEFINE values at run time causes successful similarity checks,
recompilation, or errors.
To inherit DEFINEs in a program, set DEFMODE ON before you start the program;
to avoid inheriting DEFINEs, set DEFMODE OFF before you start the program,
then set it ON within the program.
DEFINEs you create from an executing program remain in effect until you alter
them, delete them, or terminate the program. DEFINEs you inherit from another
process and then modify within an executing program revert to their previous
attribute values (that is, the values they had when you started the program) when the
program terminates. Any changes you make to inherited attributes within the
program apply only within the program.
•
Resolution of DEFINE names in static SQL
DEFINE names in a static SQL statement that was compiled WITHOUT a
CONTROL QUERY BIND NAMES AT EXECUTION directive in effect are
resolved at SQL-load time (just before the first SQL statement in the program