IBM Support

SQL0104N executing a SQL function

Troubleshooting


Problem

You have a SQL function which makes a call to a stored procedure (SP). The SP is expected to return a result set to the SQL function, however, the SP fails to execute and returns an SQL0104N error.

Symptom

Example:
CREATE FUNCTION CHERRY.getProdSegByProdName ( v_PRODNAME VARCHAR(255) )
RETURNS VARCHAR(30)
LANGUAGE SQL
BEGIN ATOMIC
DECLARE v_PROD_SEG VARCHAR(30) DEFAULT 'OTHER';
SET (v_PROD_SEG) = ( CALL XMAP.getPSegByPNameSP (v_PRODNAME); );
IF((v_PROD_SEG IS NULL) OR (v_PROD_SEG = '')) THEN
SET v_PROD_SEG = 'OTHER';
END IF;
RETURN v_PROD_SEG;
END@

STATEMENT USED TO RUN THE ABOVE:
db2 -td@ -f getProdSegByProdName.sql

ERROR RECEIVED:
DB21034E The command was processed as an SQL statement because it was not a valid Command Line Processor command. During SQL processing it returned:
SQL0104N An unexpected token "CALL" was found following "SET (v_PROD_SEG) =
(". Expected tokens may include: "<case_simple_type>". LINE NUMBER=1.
SQLSTATE=42601

[{"Product":{"code":"SSEPGG","label":"Db2 for Linux, UNIX and Windows"},"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Component":"Routines (SP \u0026 UDF) - SQL","Platform":[{"code":"PF002","label":"AIX"},{"code":"PF010","label":"HP-UX"},{"code":"PF016","label":"Linux"},{"code":"PF027","label":"Solaris"},{"code":"PF033","label":"Windows"}],"Version":"9.7;9.5","Edition":"","Line of Business":{"code":"LOB10","label":"Data and AI"}}]

Log InLog in to view more of this document

This document has the abstract of a technical article that is available to authorized users once you have logged on. Please use Log in button above to access the full document. After log in, if you do not have the right authorization for this document, there will be instructions on what to do next.

Document Information

Modified date:
30 April 2025

UID

swg21503367