SQLines tools can help you convert IBM RPG routines and programs to MySQL stored procedures and functions.
./sqlines -sl=rpg -s=db2 -t=mysql -in=file.rpg
Converting language elements:
| RPG | MySQL | |||
| 1 | // comment text | Single line comment | -- comment text | |
| 2 | string + string2 + … | String concatenation | CONCAT(string, string2, …) | |
Converting data types:
| RPG | MySQL | |||
| 1 | 30A | Fixed-length character string | CHAR(30) | |
| 2 | 30A VARYING | Variable-length character string | VARCHAR(30) | |
| 3 | 5I | Integer number | INT | |
| 4 | 10P 0 | Fixed-point number | DECIMAL(10, 0) | |
Converting string functions:
| RPG | MySQL | |||
| 1 | %SCAN(substr : string) | Get position of substring | LOCATE(substr, string) | |
| 2 | %SUBST(string, start, len) | Get a substring | SUBSTR(string, start, len) | |
| 3 | %TRIM(string [: chars]) | Remove leading and trailing characters | TRIM(string) | |
Converting standalone routines:
| RPG | MySQL | |||
| 1 | P name B | Routine start | DROP FUNCTION IF EXISTS name; DELIMITER // CREATE FUNCTION name |
|
| 2 | D param 100A | Input parameter | (param CHAR(100)) | |
| 3 | D name PI 20A VARYING | Return data type | RETURS VARCHAR(20) BEGIN |
|
| 4 | P name E | Routine end | END; // DELIMITER ; |
|
Local variable declaration:
| RPG | MySQL | |||
| 1 | D var S 5I 0 INZ | Integer variable | DECLARE var INT DEFAULT 0; | |
Assignment statement:
| RPG | MySQL | |||
| 1 | var = expr; | Variable assignment | SET var = expr; | |
Flow of control statements
| RPG | MySQL | |||
| 1 | DOU condition; statements ENDDO; | Do until loop | WHILE condition DO statements END WHILE; | |
| 2 | IF condition; statements ENDIF; | IF statement | IF condition THEN statements END IF; | |
Converting compiler directives:
| RPG | MySQL | |||
| 1 | /FREE | Start of code block | BEGIN | |
| 2 | /END-FREE | End of code block | END | |