Advertisement
Guest User

Untitled

a guest
Nov 24th, 2014
136
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.16 KB | None | 0 0
  1. -- User Defined Record
  2. TYPE EMP_REC IS RECORD
  3. (
  4. id employees.employee_id%type,
  5. name employees.last_name%type,
  6. dept_name departments.department_name%type,
  7. job_title jobs.job_title%type,
  8. salary employees.salary%type,
  9. manager_id employees.employee_id%type,
  10. city locations.city%type,
  11. phone employees.phone_number%type
  12. );
  13.  
  14. -- PURPOSE: Prints all employee information from the employee record
  15. -- Example Of: PROCEDURE that takes in a parameter of RECORD type
  16. PROCEDURE print_employee_all_details(empl1 emp_rec , emp_rec_string OUT VARCHAR2)
  17.  
  18. public String printEmployeeAllDetails()
  19. {
  20. Connection conn = null;
  21. CallableStatement callStmt = null;
  22. String empDetails = null;
  23.  
  24. try
  25. {
  26. // Register the Jdbc Driver
  27. // Class.forName(JDBC_DRIVER_ORACLE);
  28.  
  29. // Create a Database Connection
  30. conn = DriverManager.getConnection(DB_URL,DB_USER,DB_PWD);
  31.  
  32. // Create a query string
  33. String callProc = "{call HR.EMP_PKG.print_employee_all_details( ? , ?) }";
  34.  
  35. // Create a Callable Statement
  36. callStmt = conn.prepareCall(callProc);
  37.  
  38.  
  39. // Create descriptor for the Oracle Record type "EMP_REC" required
  40. StructDescriptor recDescriptor = StructDescriptor.createDescriptor("EMP_REC", conn);
  41.  
  42. // Stage values for each field in the Oracle record in an array
  43. Object[] javaEmpRec = new Object[8];
  44.  
  45.  
  46. // Populate those values in the Array
  47. javaEmpRec[0] = 100;
  48. javaEmpRec[1] = "Joe Matthew";
  49. javaEmpRec[2] = "IT";
  50. javaEmpRec[3] = "Senior Consultant";
  51. javaEmpRec[4] = 20000;
  52. javaEmpRec[5] = 101;
  53. javaEmpRec[6] = "lombard";
  54. javaEmpRec[7] = "222333444";
  55.  
  56. // Cast the java array into the oracle record type
  57. STRUCT oracleEmpRec = new STRUCT(recDescriptor , conn , javaEmpRec);
  58.  
  59.  
  60. // Bind Values to the IN parameter
  61. callStmt.setObject(1, oracleEmpRec);
  62.  
  63. // Register OUT parameter
  64. callStmt.registerOutParameter(2, java.sql.Types.VARCHAR);
  65.  
  66. // Execute the Callable Statement
  67. callStmt.execute();
  68.  
  69. // Retrieve the value from the OUT parameter
  70. empDetails = callStmt.getString(2);
  71. System.out.println("Emp Details: " + empDetails);
  72.  
  73. }
  74. catch (SQLException se)
  75. {
  76. System.out.println("Exception occured in the database");
  77. System.out.println("Exception message: "+ se.getMessage());
  78. System.out.println("Database error code: "+ se.getErrorCode());
  79. se.printStackTrace();
  80. }
  81. finally
  82. {
  83. // Clean up
  84. if(callStmt != null)
  85. {
  86. try
  87. {
  88. callStmt.close();
  89. }
  90. catch (SQLException se2)
  91. {
  92. se2.printStackTrace();
  93. }
  94. }
  95.  
  96. if(conn != null)
  97. {
  98. try
  99. {
  100. conn.close();
  101. }
  102. catch (SQLException se2)
  103. {
  104. se2.printStackTrace();
  105. }
  106. }
  107. }
  108.  
  109. return empDetails;
  110. }
  111.  
  112. Exception occured in the database
  113. Exception message: invalid name pattern: HR.EMP_REC
  114. java.sql.SQLException: invalid name pattern: HR.EMP_REC
  115. at oracle.jdbc.oracore.OracleTypeADT.initMetadata(OracleTypeADT.java:554)
  116. at oracle.jdbc.oracore.OracleTypeADT.init(OracleTypeADT.java:471)
  117. at oracle.sql.StructDescriptor.initPickler(StructDescriptor.java:324)
  118. at oracle.sql.StructDescriptor.<init>(StructDescriptor.java:254)
  119. at oracle.sql.StructDescriptor.createDescriptor(StructDescriptor.java:135)
  120. at oracle.sql.StructDescriptor.createDescriptor(StructDescriptor.java:103)
  121. Database error code: 17074
  122. at oracle.sql.StructDescriptor.createDescriptor(StructDescriptor.java:72)
  123. at com.rolta.HrManager.printEmployeeAllDetails(HrManager.java:1214)
  124. at com.rolta.HrManager.main(HrManager.java:1334)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement