![]() | |
![]() |
| | Thread Tools | Display Modes |
#1
| |||
| |||
|
|
Hello, I have a problem. I have a number of functions which I need to load. However these functions contain embedded semi-colons. For example (1) CREATE FUNCTION REVERSE(INSTR VARCHAR(4000)) RETURNS VARCHAR(4000) (2) begin atomic (3) return 'ABC'; (4) end The problem is that if I have a .sql file containing this function and run it like this: db2 -t -f script.sql Then db2 gets to the semi-colon at the end of line 3 and assumes it is the end of the create function command. Which generates an error. If I run the script without the -t flag then DB2 gets to the end of the first line and assumes thats it, resulting in another error. The only way we have found to run this is to apply back slashes to each line, resulting in: (1) CREATE FUNCTION REVERSE(INSTR VARCHAR(4000)) RETURNS VARCHAR(4000) \ (2) begin atomic \ (3) return 'ABC'; \ (4) end Our preferred way would be to not have the back slashes and use semi-colons to delimit commands. However the DB2 interpreter seems to not be able to handle nested statements in functions like this. How have you guys handled this situation ? any thoughts or experience would be appreciated. cio Derek. |
#2
| |||
| |||
|
|
Hello, I have a problem. I have a number of functions which I need to load. However these functions contain embedded semi-colons. For example (1) CREATE FUNCTION REVERSE(INSTR VARCHAR(4000)) RETURNS VARCHAR(4000) (2) begin atomic (3) return 'ABC'; (4) end The problem is that if I have a .sql file containing this function and run it like this: db2 -t -f script.sql Then db2 gets to the semi-colon at the end of line 3 and assumes it is the end of the create function command. Which generates an error. If I run the script without the -t flag then DB2 gets to the end of the first line and assumes thats it, resulting in another error. The only way we have found to run this is to apply back slashes to each line, resulting in: (1) CREATE FUNCTION REVERSE(INSTR VARCHAR(4000)) RETURNS VARCHAR(4000) \ (2) begin atomic \ (3) return 'ABC'; \ (4) end Our preferred way would be to not have the back slashes and use semi-colons to delimit commands. However the DB2 interpreter seems to not be able to handle nested statements in functions like this. How have you guys handled this situation ? any thoughts or experience would be appreciated. cio Derek. |
![]() |
| Thread Tools | |
| Display Modes | |
| |