%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

Also see PeopleCode Language Reference: FetchSQL function.

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)