BTEQ Utility Command
GaussDB(DWS) provides gsql meta-commands that can be used to replace common BTEQ tool commands. The mostly used replacements are as follows:
.QUIT | .EXIT | .RETURN
The meta-command \q [value] can be used to exit the gsql program, and value specifies the exit code. The .QUIT, .EXIT, and .RETURN commands can replace each other with the \q command.
Input |
Output |
---|---|
.QUIT 0 |
\q 0 |
.EXIT |
\q |
.RETURN |
\q |
.LABEL and .GOTO
The Teradata command .LABEL is used to create tags and is usually used together with .GOTO. .GOTO skips all intermediate BTEQ commands and SQL statements, instructs you to reach the specified label position, and performs corresponding restoration processing.
gsql meta-command \goto LABEL... and \label LABEL can be replaced with each other with no constraints.
Input |
Output |
---|---|
.IF CHECK_PK='' THEN .GOTO NOCHECK ${CHECK_PK}; .LABEL NOCHECK .QUIT 0 |
\if ${CHECK_PK} == '' \goto NOCHECK \endif ${CHECK_PK} \label NOCHECK \q 0 |
.RUN FILE
Executing the SQL request of a specified file can be implemented by the gsql meta-command \i.
Input |
Output |
---|---|
.RUN FILE=sampfile |
\i 'sampfile' |
.EXPORT FILE
Exporting the SQL statement execution result to a specified file can be implemented by the gsql meta-command \o.
Input |
Output |
---|---|
.EXPORT REPORT FILE=resultfile |
\o 'resultfile' |
..SET ..END
To set a variable to specified value, both a single-line command or a multi-line command ended with ..END can be used. You can run the SELECT command to query a specified variable name or run the \set command to convert the variable name.
Input |
Output |
---|---|
.SET SEPARATOR ' | ' |
\set SEPARATOR '|' |
..SET NAME 'Jack' ..END |
SELECT 'Jack' AS "NAME"; |
.IF
.IF is one of the important process control commands used to execute parts of an input script. It can be a single-branch command, which is used in pairs with the THEN clause. It can also be a multi-branch command. The multi-branch IF structure allows multiple nested layers, but each layer must start with the IF command and end with the ENDIF command.
The flow control meta-commands \if... \else ... \endif can be used to replace this BTEQ command.
Input |
Output |
---|---|
.IF ERRORCODE <> 0 THEN .QUIT 12; |
\if ${ERROR} != 'false' \q 12 \endif |
..FOR
In the loop control command, when the loop condition is met, the script of the loop body can be executed continuously until .QUIT exits the loop. GaussDB(DWS) provides \for... \loop ... \exit-for ... \end-for structure command implements the loop logic.
Input |
Output |
---|---|
..IF ACTIVITYCOUNT > 0 THEN ..FOR SEL SqlStr AS V_SqlStr FROM ${ ETL_DATA}.TB_DWDATA_UPDATE WHERE JobName = '${JOB_NAME}' AND TXDATE = ${ TX_DATE} - 19000000 ORDER BY ExcuteSeq ASC; ..DO ${V_SqlStr} .IF ERRORCODE<>0 THEN .QUIT 12 ..END-FOR ..END-IF |
\if ${ERROR} != 'false' \q 12 \endif \if ${ACTIVITYCOUNT} != 0 \for SELECT SqlStr AS V_SqlStr FROM ${ETL_DATA}.TB_DWDATA_UPDATE WHERE JobName = '${JOB_NAME}' AND TXDATE = to_date( ${TX_DATE} ,'yyyymmdd' ) ORDER BY ExcuteSeq ASC \loop ${V_SqlStr} ; \if ${ERROR} != 'false' \q 12 \endif \end-for \endif |
Feedback
Was this page helpful?
Provide feedbackThank you very much for your feedback. We will continue working to improve the documentation.See the reply and handling status in My Cloud VOC.
For any further questions, feel free to contact us through the chatbot.
Chatbot