Advertisement
Guest User

Untitled

a guest
Jul 5th, 2018
22
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.26 KB | None | 0 0
  1. CREATE PROCEDURE "sp_CrystalMultilanguageTable"
  2. AS
  3. CODE NVARCHAR(30);
  4. TRANSL NCLOB;
  5. LANG INTEGER;
  6. STR NCLOB;
  7. CODE_OLD NVARCHAR(30);
  8. NAME NVARCHAR(30);
  9.  
  10. CURSOR curTemp FOR SELECT CR."Code", IFNULL(T1."Trans", CR."Name") AS "TRANSLATION", T1."LangCode" ,CR."Name"
  11. FROM "@LAYOUTTRANSLATIONS" CR
  12. LEFT OUTER JOIN OMLT T0 ON T0.PK = CR."Code" AND T0."TableName" = '@LAYOUTTRANSLATIONS' AND T0."FieldAlias" = 'Name'
  13. LEFT JOIN MLT1 T1 ON T0."TranEntry" = T1."TranEntry"
  14. ORDER BY CR."Code", T1."LangCode" ;
  15.  
  16. BEGIN
  17.  
  18. create local temporary row table #t1 (CODE1 NVARCHAR(30), TRANSLATION1 NCLOB, "LangCode" Integer);
  19. STR := 'SELECT ';
  20.  
  21. OPEN curTemp ;
  22. FETCH curTemp INTO CODE, TRANSL, LANG, NAME;
  23. CODE_OLD := '';
  24. WHILE NOT curTemp::NOTFOUND DO
  25. if :CODE_OLD <> :CODE THEN
  26. STR := :STR || ' MAX(CASE WHEN "CODE1" = ''' || :CODE || ''' THEN SUBSTRING("TRANSLATION1",1,8000) ELSE '''' END) AS "' || :NAME || '", ';
  27. CODE_OLD := :CODE;
  28. END IF;
  29. insert into #t1 values (:CODE, :TRANSL, :LANG);
  30. FETCH curTemp INTO CODE, TRANSL, LANG, NAME;
  31. END WHILE;
  32. CLOSE curTemp;
  33. STR := :STR || ' "LangCode" ';
  34. STR := :STR || ' FROM #t1 GROUP BY "LangCode"';
  35. EXECUTE IMMEDIATE :STR;
  36. DROP TABLE #t1;
  37.  
  38. --SELECT :STR FROM DUMMY;
  39. END;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement