udf_jar_steps.txt 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. Licensed Materials - Property of IBM
  2. IBM Cognos Products: DOCS
  3. (C) Copyright IBM Corp. 2013
  4. US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with
  5. IBM Corp.
  6. STEPS
  7. 1. Drop this udf.jar file into the c10_location\v5dataserver\lib\ext directory of your Cognos BI server
  8. 2. Restart the query service.
  9. 3. Create your own model or use this example FM model which is based on GOSALES in DB2
  10. DESCRIPTION
  11. What you have are some very simple examples of locally processed functions that perform useful operations like the following:
  12. - find the Nth instance of a string in a string
  13. - find the first instance of a string starting from the end not the start the string
  14. - find the 'nth' word in a string (where space is the delimiter)
  15. - aggregate to compute the geometric mean (you can do this in SQL exp(sum(log(n))/count))
  16. - simple 'templated/parameterized' scalar UDF which RQP does not allow today
  17. - table function to return the data from an RSS feed such as:
  18. BBC: 'http://feeds.bbci.co.uk/news/rss.xml'
  19. CNN: 'http://rss.cnn.com/rss/edition_world.rss'
  20. CBC: 'http://rss.cbc.ca/lineup/topstories.xml'
  21. ++++++++++++++++++++++++++
  22. SQLActions[] = {
  23. "BEGIN INSTALL
  24. CREATE AGGREGATE DQM_GEOMETRICMEAN ( p0 SMALLINT )
  25. RETURNS DOUBLE PRECISION
  26. LANGUAGE JAVA PARAMETER STYLE JAVA EXTERNAL NAME 'thisjar:udf.GeometricMean';
  27. CREATE AGGREGATE DQM_GEOMETRICMEAN ( p0 INTEGER )
  28. RETURNS DOUBLE PRECISION
  29. LANGUAGE JAVA PARAMETER STYLE JAVA EXTERNAL NAME 'thisjar:udf.GeometricMean';
  30. CREATE AGGREGATE DQM_GEOMETRICMEAN ( p0 BIGINT )
  31. RETURNS DOUBLE PRECISION
  32. LANGUAGE JAVA PARAMETER STYLE JAVA EXTERNAL NAME 'thisjar:udf.GeometricMean';
  33. CREATE AGGREGATE DQM_GEOMETRICMEAN ( p0 REAL )
  34. RETURNS DOUBLE PRECISION
  35. LANGUAGE JAVA PARAMETER STYLE JAVA EXTERNAL NAME 'thisjar:udf.GeometricMean';
  36. CREATE AGGREGATE DQM_GEOMETRICMEAN ( p0 FLOAT )
  37. RETURNS DOUBLE PRECISION
  38. LANGUAGE JAVA PARAMETER STYLE JAVA EXTERNAL NAME 'thisjar:udf.GeometricMean';
  39. CREATE AGGREGATE DQM_GEOMETRICMEAN ( p0 DOUBLE PRECISION )
  40. RETURNS DOUBLE PRECISION
  41. LANGUAGE JAVA PARAMETER STYLE JAVA EXTERNAL NAME 'thisjar:udf.GeometricMean';
  42. CREATE FUNCTION DQM_POSITION_NTH ( p0 CHAR(128), p1 CHAR(128), p2 INTEGER )
  43. RETURNS INTEGER
  44. LANGUAGE JAVA PARAMETER STYLE JAVA EXTERNAL NAME 'thisjar:udf.StringUtils.positionN';
  45. CREATE FUNCTION DQM_POSITION_NTH ( p0 VARCHAR(128), p1 CHAR(128), p2 INTEGER )
  46. RETURNS INTEGER
  47. LANGUAGE JAVA PARAMETER STYLE JAVA EXTERNAL NAME 'thisjar:udf.StringUtils.positionN';
  48. CREATE FUNCTION DQM_POSITION_LAST ( p0 CHAR (128) )
  49. RETURNS INTEGER
  50. LANGUAGE JAVA PARAMETER STYLE JAVA EXTERNAL NAME 'thisjar:udf.StringUtils.positionLast';
  51. CREATE FUNCTION DQM_POSITION_LAST ( p0 VARCHAR (128) )
  52. RETURNS INTEGER
  53. LANGUAGE JAVA PARAMETER STYLE JAVA EXTERNAL NAME 'thisjar:udf.StringUtils.positionLast';
  54. CREATE FUNCTION DQM_NTH_WORD ( p0 VARCHAR (128), p1 INTEGER )
  55. RETURNS VARCHAR(32)
  56. LANGUAGE JAVA PARAMETER STYLE JAVA EXTERNAL NAME 'thisjar:udf.StringUtils.nthWord';
  57. CREATE FUNCTION DQM_RSSFEEDS ( p0 CHAR (128) )
  58. RETURNS TABLE ( "title" VARCHAR(256), "description" VARCHAR(512),
  59. "link" VARCHAR(256), "guid" VARCHAR(128), "pubDate" VARCHAR(32))
  60. LANGUAGE JAVA PARAMETER STYLE JAVA EXTERNAL NAME 'thisjar:udf.RssFeed.rssFeed';
  61. CREATE FUNCTION DQM_MY_CONCAT(p0 VARCHAR(32), p1 VARCHAR(32))
  62. RETURNS VARCHAR(72)
  63. LANGUAGE SQL
  64. PARAMETER STYLE SQL
  65. READS SQL DATA
  66. DETERMINISTIC
  67. RETURN p0 || '...' || p1;
  68. END INSTALL"
  69. }