%ResolveMetaSQL meta-SQL element
Syntax
%ResolveMetaSQL(&SQL,%DbType)
Description
The %ResolveMetaSQL function returns a string with any meta-SQL in the string expanded to platform-specific SQL, similar to the text that is returned on the Meta-SQL tab when using the Resolve Meta-SQL option in the SQL Editor.
If &SQL does not contain any meta-SQL, then the function returns a string identical to &SQL.
%DBType value represents the type of current database.
Parameters
| Parameter | Description |
|---|---|
|
&SQL |
Specify a string containing the SQL to be resolved. |
|
%DBType |
%DBType value is Db2 |
Returns
A string with meta-SQL expanded to platform-specific SQL.
Example
Here is an example:
&SQLText = FetchSQL(SQL.PTLT_CODE_MARKET);
&ResolveSQLText = ResolveMetaSQL(&SQLText,DB2);
Suppose &SQLText contains the following SQL:
INSERT INTO %Table(PTLT_ASSGN_TASK)(PTLT_FEATURE_CODE
, PTLT_TASK_CODE
, PORTAL_NAME
, PTLT_TASK_CODE2
, MENUNAME
, OBJECTOWNERID)
SELECT A.EOLT_FEATURE_CODE
, %Sql(PTLT_TASK_CODE, A.PNLGRPNAME, A.MARKET)
, 'EMPLOYEE'
, %Sql(PTLT_TASK_CODE, A.PNLGRPNAME, A.MARKET)
, A.MENUNAME
, ' '
FROM %Table(EOLT_FEAT_COMP) A
, %Table(PTLT_TASK) B
, %Table(PTLT_TASK_LOAD) C
WHERE %Sql(PTLT_TASK_CODE, A.PNLGRPNAME, A.MARKET) = B.PTLT_TASK_CODE
AND B.PTLT_TASK_CODE = C.PTLT_TASK_CODE
AND B.PTLT_LOAD_METHOD = C.PTLT_LOAD_METHOD
AND A.MENUNAME <> ' '
AND A.MENUNAME <> C.MENUNAME
AND NOT EXISTS (
SELECT 'X'
FROM %Table(PTLT_ASSGN_TASK) Z
WHERE Z.PTLT_FEATURE_CODE = A.EOLT_FEATURE_CODE
AND Z.PTLT_TASK_CODE = %Sql(PTLT_TASK_CODE, A.PNLGRPNAME, A.MARKET))
&ResolveSQLText would contain the following text (depending on your database platform):
INSERT INTO PS_PTLT_ASSGN_TASK(PTLT_FEATURE_CODE
, PTLT_TASK_CODE
, PORTAL_NAME
, PTLT_TASK_CODE2
, MENUNAME
, OBJECTOWNERID)
SELECT A.EOLT_FEATURE_CODE
, RTRIM(SUBSTR( A.PNLGRPNAME
,1
,18)) || '.' || A.MARKET
, 'EMPLOYEE'
, RTRIM(SUBSTR( A.PNLGRPNAME
,1
,18)) || '.' || A.MARKET
, A.MENUNAME
, ' '
FROM PS_EOLT_FEAT_COMP A
, PS_PTLT_TASK B
, PS_PTLT_TASK_LOAD C
WHERE RTRIM(SUBSTR( A.PNLGRPNAME,1,18)) || '.' || A.MARKET = B.PTLT_TASK_CODE
AND B.PTLT_TASK_CODE = C.PTLT_TASK_CODE
AND B.PTLT_LOAD_METHOD = C.PTLT_LOAD_METHOD
AND A.MENUNAME <> ' '
AND A.MENUNAME <> C.MENUNAME
AND NOT EXISTS (
SELECT 'X'
FROM PS_PTLT_ASSGN_TASK Z
WHERE Z.PTLT_FEATURE_CODE = A.EOLT_FEATURE_CODE
AND Z.PTLT_TASK_CODE = RTRIM(SUBSTR( A.PNLGRPNAME,1,18)) || '.' || A.MARKET)