Hi All,
I am new in Groovy and stuck on writing in script.
I have a oracle stored proc and that proc using the Arry type input parameter
Type Parameter :
create or replace TYPE "ARR_HP_STU_CERT_USERNAME" as table of varchar2(32767);
PROC:
1. create or replace PROCEDURE sp_hp_stu_cert_status_chk (
2. in_track_id IN NUMBER,
3. in_username IN arr_hp_stu_cert_username,
4. in_certification_id IN VARCHAR2,
5. out_details OUT SYS_REFCURSOR,
6. out_status_code OUT NUMBER,
7. out_status_desc OUT VARCHAR2)
8. AS
9. v_prc_name VARCHAR2 (50) := 'sp_hp_stu_cert_status_chk';
10. v_count NUMBER;
11. v_user_id VARCHAR2 (500);
12. required_fields EXCEPTION;
13. BEGIN
14. {
15. ;;;;; doing stuff ;;;;;;
16. }
I have written a groovy code to execute that proc but its giving error about
casting :
Groovy Script :
1. /*import org.apache.commons.io.IOUtils
2. import org.apache.nifi.controller.ControllerService
3. import org.apache.nifi.processor.io.StreamCallback */
4. import java.nio.charset.*
5. import groovy.sql.OutParameter
6. import groovy.sql.InParameter
7. import groovy.sql.Sql
8. import oracle.jdbc.OracleTypes
9. import java.sql.ResultSet
10. //import java.sql.*
11.
12.
13.
14.
15. def sql =
Sql.newInstance('jdbc:oracle:thin:@//XXXXX.itcs.entsvcs.net:1525/XXXX', 'XXXX',
'XXXXX$', 'oracle.jdbc.OracleDriver')
16. in_track_id='1798'
17. in_certification_id='crtfy000000000003144'
18.
19.
20.
21.
22. OutParameter CURSOR_PARAMETER = new OutParameter() {
23. public int getType() {
24. return OracleTypes.CURSOR;
25. }
26. };
27.
28.
29. InParameter ArrayUserName = new InParameter() {
30. public int getType() {
31. return OracleTypes.ARRAY;
32. }
33. public Object getValue(){
34.
35.
36. }
37. };
38.
39.
40.
41.
42. def data = []
43. String sqlString ="""{call sp_hp_stu_cert_status_chk(?, ?, ?, ?, ?, ?)}""";
44. def status_desc
45. def status_code
46. def status_data
47. def testID
48. def parametersList = [in_track_id, ArrayUserName, in_certification_id,
CURSOR_PARAMETER, Sql.NUMERIC ,Sql.VARCHAR];
49.
50.
51. sql.call(sqlString, parametersList) {out_details,
out_status_code,out_status_desc ->
52. status_desc = out_status_desc
53. status_code = out_status_code
54. };
55.
56.
57. Print(status_desc)
58. Print(status_code)
And this scripting giving error to of arry.type "ArrayUserName" could any help
where I am making incorrect thing.
Thanks & Regards
Shekh Shakeel Ahmad,