In SQL, the at sign (@) means execute. When you type @ and the name of an indirect command file, SQL executes the statements in that file as if you typed them one-at-a-time at the SQL prompt (SQL>). The command file must be a text file that contains SQL statements. The default file extension for an indirect command file is .SQL. You can use the SET VERIFY statement to display the commands in the file as they execute. SQL recognizes a special SQL command file called SQLINI.SQL, which contains SQL statements to be issued before SQL displays the SQL prompt (SQL>). If this file exists, SQL executes the commands in the file first, before displaying the prompt and accepting your input. If you define the logical name to point to a general initialization file, SQL uses this file. Otherwise, it looks for SQLINI.SQL in the current default directory.
1 – Environment
You can issue the execute (@) statement only in interactive SQL.
2 – Format
(B)0[m[1m@<file-spec> [m [1m [m
3 – Arguments
3.1 – file-spec
Specifies the name of an indirect command file. You can use either a full file specification, a file name, or a logical name on OpenVMS. If you use a file name, SQL looks in the current default directory for a file by that name. The file must contain valid SQL statements.
4 – Examples
Example 1: Storing interactive SQL statements in a startup file You can use an indirect command file to specify characteristics of your SQL terminal session. This example assumes that SQLINI is defined as a logical name that points to the file setup.sql. The file contains the following SQL statements: SET VERIFY; SET EDIT KEEP 5; -- This line will be displayed on the terminal SQL executes the file when you invoke interactive SQL. $ SQL$ SQL> SET EDIT KEEP 5; -- This line will be displayed on the terminal SQL> When it executes, setup.sql turns on the indirect command file display and limits the number of statements saved by SQL for editing to five. Example 2: Executing frequently used queries The file EMPADDR.SQL contains the following SQL statements: -- This command file generates information for a mailing list. -- ATTACH 'FILENAME personnel'; SET OUTPUT MAILLIST.DOC SELECT FIRST_NAME, MIDDLE_INITIAL, LAST_NAME, ADDRESS_DATA_1, ADDRESS_DATA_2, CITY, STATE, POSTAL_CODE FROM EMPLOYEES; -- -- Execute the file by using the following command: -- @EMPADDR Example 3: Using a logical name to run a command file If you define COUNT to be a logical name, you can use the command @COUNT to execute the statements in the file, even if the file is located in a directory other than the default directory. The file COUNT.SQL contains the following SQL statements: -- This command file counts the rows in -- each table of the personnel database. -- SET NOVERIFY; SELECT 'Count of Employees -------> ', COUNT (*) FROM EMPLOYEES; SELECT 'Count of Jobs ------------> ', COUNT (*) FROM JOBS; SELECT 'Count of Degrees ---------> ', COUNT (*) FROM DEGREES; SELECT 'Count of Salary_History --> ', COUNT (*) FROM SALARY_HISTORY; SELECT 'Count of Job_History -----> ', COUNT (*) FROM JOB_HISTORY; SELECT 'Count of Work_Status -----> ', COUNT (*) FROM WORK_STATUS; SELECT 'Count of Departments -----> ', COUNT (*) FROM DEPARTMENTS; SELECT 'Count of Colleges --------> ', COUNT (*) FROM COLLEGES; The following example shows how to execute the file and the output: $ SQL SQL> @COUNT; Count of Employees -------> 100 1 row selected Count of Jobs ------------> 15 1 row selected Count of Degrees ---------> 166 1 row selected . . .