pears.placementelementvalueV2

Generated schema reference. Regenerate this page from the SQL unload; keep hand-maintained business notes in the narrative namespace.

CREATE FUNCTION "pears"."placementelementvalueV2"( 
  /* Application Maintained Function / Procedure - DO NOT EDIT*/
  IN "splacid" CHAR(20),IN "spersid" CHAR(20),IN "svacid" CHAR(20),IN "selementname" CHAR(20) ) 
RETURNS long VARCHAR
BEGIN
  DECLARE "rv" long VARCHAR;
  DECLARE "l" long VARCHAR;
  DECLARE "n" REAL;
  DECLARE "i" INTEGER;
  DECLARE "dt" CHAR(1);
  DECLARE "subname" CHAR(30);
  DECLARE "subchar" CHAR(1);
  DECLARE "tempid" CHAR(20);
  IF "selementname" = 'PLACEMENTID' THEN
    RETURN(CAST("splacid" AS long VARCHAR))
  ELSEIF "selementname" = 'PERSONID' THEN
    RETURN(CAST("spersid" AS long VARCHAR))
  ELSEIF "selementname" = 'VACANCYID' THEN
    RETURN(CAST("svacid" AS long VARCHAR))
  ELSEIF "selementname" = 'SALARY' THEN
    SET "n" = (SELECT "salary" FROM "placement" WHERE "placementid" = "splacid");
    RETURN(CAST("n" AS long VARCHAR))
  ELSE
    SET "l" = NULL;
    SET "tempid" = NULL;
    SELECT "placementelement"."value","placementelement"."placementid" INTO "l",
      "tempid" FROM "placementelement" KEY JOIN "placementelementtype"
      WHERE "placementelement"."placementid" = "splacid" AND "placementelementtype"."name" = "selementname";
    IF "tempid" IS NOT NULL THEN
      RETURN("l")
    END IF;
    SELECT "defaultvalue" INTO "l" FROM "placementelementtype" WHERE "name" = "selementname";
    IF "l" IS NULL THEN
      RETURN(NULL)
    END IF;
    "subloop": loop
      SET "i" = "patindex"('%{%}%',"l");
      IF "i" = 0 THEN
        leave "subloop"
      END IF;
      SET "subname" = '';
      "charloop": loop
        SET "subchar" = "substr"("l","i",1);
        IF "length"("l") = 1 THEN
          SET "l" = '' // IN this CASE stuffing crashes the server
        ELSE
          SET "l" = "stuff"("l","i",1,'')
        END IF;
        IF "subchar" = '}' OR "i" > "length"("l") THEN // The latter IS precautionary
          leave "charloop"
        ELSEIF "subchar" <> '{' THEN
          SET "subname" = "subname" || "subchar"
        END IF
      END loop "charloop";
      SET "rv" = "placementelementvalueV2"("splacid","spersid","svacid","subname");
      IF "subname" = 'PLACEMENTID' OR "subname" = 'PERSONID' OR "subname" = 'VACANCYID' THEN
        SET "dt" = 'S'
      ELSE
        SET "dt" = NULL;
        SELECT "datatype" INTO "dt" FROM "placementelementtype" WHERE "name" = "subname"
      END IF;
      IF "rv" IS NULL THEN
        SET "rv" = 'null'
      ELSE
        IF "dt" = 'S' THEN
          SET "rv" = '''' || "rv" || ''''
        ELSE
          SET "rv" = 'cast(' || "rv" || ' as real)'
        END IF END IF;
      SET "l" = "insertstr"("i"-1,"l","rv")
    END loop "subloop";
    IF "l" IS NULL OR "length"("l") = 0 THEN
      RETURN(NULL)
    END IF;
    SET "rv" = NULL;
    SET "l" = 'set rv=(select ' || "l" || ')';
    EXECUTE IMMEDIATE "l";
    RETURN("rv")
  END IF
END
  • database/functions/pears_placementelementvaluev2.txt
  • Last modified: 2026/08/07 19:24
  • by 127.0.0.1