{"id":760,"date":"2023-11-13T11:33:22","date_gmt":"2022-09-13T13:04:06","guid":{"rendered":"https:\/\/www.silicloud.com\/ja\/blog\/index.php\/2023\/11\/30\/java%e3%81%ae%e4%be%8b%e3%81%a7%e3%81%aecallablestatement\/"},"modified":"2025-08-01T02:13:59","modified_gmt":"2025-07-31T17:13:59","slug":"java%e3%81%ae%e4%be%8b%e3%81%a7%e3%81%aecallablestatement","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/ja\/blog\/java%e3%81%ae%e4%be%8b%e3%81%a7%e3%81%aecallablestatement\/","title":{"rendered":"Java\u306e\u4f8b\u3067\u306eCallableStatement"},"content":{"rendered":"<p>Java\u306eCallableStatement\u306f\u3001Java\u30d7\u30ed\u30b0\u30e9\u30e0\u304b\u3089\u30b9\u30c8\u30a2\u30c9\u30d7\u30ed\u30b7\u30fc\u30b8\u30e3\u3092\u547c\u3073\u51fa\u3059\u305f\u3081\u306b\u4f7f\u7528\u3055\u308c\u307e\u3059\u3002\u30b9\u30c8\u30a2\u30c9\u30d7\u30ed\u30b7\u30fc\u30b8\u30e3\u306f\u3001\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u3067\u30b3\u30f3\u30d1\u30a4\u30eb\u3055\u308c\u305f\u3044\u304f\u3064\u304b\u306e\u30bf\u30b9\u30af\u306e\u305f\u3081\u306e\u30b9\u30c6\u30fc\u30c8\u30e1\u30f3\u30c8\u306e\u30b0\u30eb\u30fc\u30d7\u3067\u3059\u3002\u30b9\u30c8\u30a2\u30c9\u30d7\u30ed\u30b7\u30fc\u30b8\u30e3\u306f\u3001\u8907\u96d1\u306a\u30b7\u30ca\u30ea\u30aa\u3092\u6301\u3064\u8907\u6570\u306e\u30c6\u30fc\u30d6\u30eb\u3092\u6271\u3046\u5834\u5408\u306b\u4fbf\u5229\u3067\u3042\u308a\u3001\u8907\u6570\u306e\u30af\u30a8\u30ea\u3092\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u306b\u9001\u4fe1\u3059\u308b\u4ee3\u308f\u308a\u306b\u3001\u5fc5\u8981\u306a\u30c7\u30fc\u30bf\u3092\u30b9\u30c8\u30a2\u30c9\u30d7\u30ed\u30b7\u30fc\u30b8\u30e3\u306b\u9001\u4fe1\u3057\u3001\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u30b5\u30fc\u30d0\u30fc\u81ea\u4f53\u3067\u30ed\u30b8\u30c3\u30af\u3092\u5b9f\u884c\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n<h2>\u30b3\u30fc\u30eb\u30d6\u30eb\u30b9\u30c6\u30fc\u30c8\u30e1\u30f3\u30c8<\/h2>\n<p>JDBC API\u306f\u3001CallableStatement\u30a4\u30f3\u30bf\u30d5\u30a7\u30fc\u30b9\u3092\u4ecb\u3057\u3066\u30b9\u30c8\u30a2\u30c9\u30d7\u30ed\u30b7\u30fc\u30b8\u30e3\u306e\u5b9f\u884c\u306b\u30b5\u30dd\u30fc\u30c8\u3092\u63d0\u4f9b\u3057\u307e\u3059\u3002\u30b9\u30c8\u30a2\u30c9\u30d7\u30ed\u30b7\u30fc\u30b8\u30e3\u306f\u3001\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u56fa\u6709\u306e\u69cb\u6587\u3067\u66f8\u304b\u308c\u308b\u5fc5\u8981\u304c\u3042\u308a\u3001\u79c1\u306e\u30c1\u30e5\u30fc\u30c8\u30ea\u30a2\u30eb\u3067\u306fOracle\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u3092\u4f7f\u7528\u3057\u307e\u3059\u3002IN\u30d1\u30e9\u30e1\u30fc\u30bf\u3068OUT\u30d1\u30e9\u30e1\u30fc\u30bf\u3092\u6301\u3064CallableStatement\u306e\u6a19\u6e96\u6a5f\u80fd\u3092\u898b\u3066\u3044\u304d\u307e\u3059\u3002\u305d\u306e\u5f8c\u3001Oracle\u56fa\u6709\u306eSTRUCT\u3068Cursor\u306e\u4f8b\u3092\u898b\u3066\u3044\u304d\u307e\u3059\u3002\u307e\u305a\u306f\u3001\u4ee5\u4e0b\u306eSQL\u30af\u30a8\u30ea\u3067CallableStatement\u306e\u4f8b\u30d7\u30ed\u30b0\u30e9\u30e0\u7528\u306e\u30c6\u30fc\u30d6\u30eb\u3092\u4f5c\u6210\u3057\u307e\u3057\u3087\u3046\u3002create_employee.sql<\/p>\n<pre class=\"post-pre\"><code>-- For Oracle DB\r\nCREATE TABLE EMPLOYEE\r\n  (\r\n    \"EMPID\"   NUMBER NOT NULL ENABLE,\r\n    \"NAME\"    VARCHAR2(10 BYTE) DEFAULT NULL,\r\n    \"ROLE\"    VARCHAR2(10 BYTE) DEFAULT NULL,\r\n    \"CITY\"    VARCHAR2(10 BYTE) DEFAULT NULL,\r\n    \"COUNTRY\" VARCHAR2(10 BYTE) DEFAULT NULL,\r\n    PRIMARY KEY (\"EMPID\")\r\n  );\r\n<\/code><\/pre>\n<p>\u6700\u521d\u306b\u3001Oracle\u306e\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u63a5\u7d9a\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3092\u53d6\u5f97\u3059\u308b\u305f\u3081\u306e\u30e6\u30fc\u30c6\u30a3\u30ea\u30c6\u30a3\u30af\u30e9\u30b9\u3092\u4f5c\u6210\u3057\u307e\u3057\u3087\u3046\u3002\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u30d3\u30eb\u30c9\u30d1\u30b9\u306bOracle\u306eOJDBC jar\u304c\u3042\u308b\u3053\u3068\u3092\u78ba\u8a8d\u3057\u3066\u304f\u3060\u3055\u3044\u3002DBConnection.java<\/p>\n<pre class=\"post-pre\"><code>package com.scdev.jdbc.storedproc;\r\n\r\nimport java.sql.Connection;\r\nimport java.sql.DriverManager;\r\nimport java.sql.SQLException;\r\n\r\npublic class DBConnection {\r\n\r\n\tprivate static final String DB_DRIVER_CLASS = \"oracle.jdbc.driver.OracleDriver\";\r\n\tprivate static final String DB_URL = \"jdbc:oracle:thin:@localhost:1521:orcl\";\r\n\tprivate static final String DB_USERNAME = \"HR\";\r\n\tprivate static final String DB_PASSWORD = \"oracle\";\r\n\t\r\n\tpublic static Connection getConnection() {\r\n\t\tConnection con = null;\r\n\t\ttry {\r\n\t\t\t\/\/ load the Driver Class\r\n\t\t\tClass.forName(DB_DRIVER_CLASS);\r\n\r\n\t\t\t\/\/ create the connection now\r\n\t\t\tcon = DriverManager.getConnection(DB_URL,DB_USERNAME,DB_PASSWORD);\r\n\t\t} catch (ClassNotFoundException e) {\r\n\t\t\te.printStackTrace();\r\n\t\t} catch (SQLException e) {\r\n\t\t\te.printStackTrace();\r\n\t\t}\r\n\t\treturn con;\r\n\t}\r\n}\r\n<\/code><\/pre>\n<h3>CallableStatement\u306e\u4f8b<\/h3>\n<p>\u30b7\u30f3\u30d7\u30eb\u306a\u30b9\u30c8\u30a2\u30c9\u30d7\u30ed\u30b7\u30fc\u30b8\u30e3\u3092\u4f5c\u6210\u3057\u3066\u3001Employee\u30c6\u30fc\u30d6\u30eb\u306b\u30c7\u30fc\u30bf\u3092\u633f\u5165\u3057\u307e\u3057\u3087\u3046\u3002\u300cinsertEmployee.sql\u300d\u3068\u3044\u3046\u540d\u524d\u306e\u30d5\u30a1\u30a4\u30eb\u306b\u8a18\u8ff0\u3057\u307e\u3059\u3002<\/p>\n<pre class=\"post-pre\"><code>CREATE OR REPLACE PROCEDURE insertEmployee\r\n(in_id IN EMPLOYEE.EMPID%TYPE,\r\n in_name IN EMPLOYEE.NAME%TYPE,\r\n in_role IN EMPLOYEE.ROLE%TYPE,\r\n in_city IN EMPLOYEE.CITY%TYPE,\r\n in_country IN EMPLOYEE.COUNTRY%TYPE,\r\n out_result OUT VARCHAR2)\r\nAS\r\nBEGIN\r\n  INSERT INTO EMPLOYEE (EMPID, NAME, ROLE, CITY, COUNTRY) \r\n  values (in_id,in_name,in_role,in_city,in_country);\r\n  commit;\r\n  \r\n  out_result := 'TRUE';\r\n  \r\nEXCEPTION\r\n  WHEN OTHERS THEN \r\n  out_result := 'FALSE';\r\n  ROLLBACK;\r\nEND;\r\n<\/code><\/pre>\n<p>\u304a\u5ba2\u69d8\u304b\u3089\u306e\u5165\u529b\u3092Employee\u30c6\u30fc\u30d6\u30eb\u306b\u633f\u5165\u3059\u308b\u305f\u3081\u3001insertEmployee\u30d7\u30ed\u30b7\u30fc\u30b8\u30e3\u306f\u5165\u529b\u3092\u5fc5\u8981\u3068\u3057\u3066\u3044\u307e\u3059\u3002\u633f\u5165\u30b9\u30c6\u30fc\u30c8\u30e1\u30f3\u30c8\u304c\u6b63\u5e38\u306b\u52d5\u4f5c\u3059\u308b\u5834\u5408\u3001TRUE\u3092\u8fd4\u3057\u3001\u4f8b\u5916\u304c\u767a\u751f\u3057\u305f\u5834\u5408\u306fFALSE\u3092\u8fd4\u3057\u307e\u3059\u3002CallableStatement\u3092\u4f7f\u7528\u3057\u3066\u3001\u30d7\u30ed\u30b7\u30fc\u30b8\u30e3insertEmployee\u3092\u5b9f\u884c\u3057\u3066\u5f93\u696d\u54e1\u30c7\u30fc\u30bf\u3092\u633f\u5165\u3059\u308b\u65b9\u6cd5\u3092\u898b\u3066\u307f\u307e\u3057\u3087\u3046\u3002JDBCStoredProcedureWrite.java<\/p>\n<pre class=\"post-pre\"><code>package com.scdev.jdbc.storedproc;\r\n\r\nimport java.sql.CallableStatement;\r\nimport java.sql.Connection;\r\nimport java.sql.SQLException;\r\nimport java.util.Scanner;\r\n\r\npublic class JDBCStoredProcedureWrite {\r\n\r\n\tpublic static void main(String[] args) {\r\n\t\tConnection con = null;\r\n\t\tCallableStatement stmt = null;\r\n\t\t\r\n\t\t\/\/Read User Inputs\r\n\t\tScanner input = new Scanner(System.in);\r\n\t\tSystem.out.println(\"Enter Employee ID (int):\");\r\n\t\tint id = Integer.parseInt(input.nextLine());\r\n\t\tSystem.out.println(\"Enter Employee Name:\");\r\n\t\tString name = input.nextLine();\r\n\t\tSystem.out.println(\"Enter Employee Role:\");\r\n\t\tString role = input.nextLine();\r\n\t\tSystem.out.println(\"Enter Employee City:\");\r\n\t\tString city = input.nextLine();\r\n\t\tSystem.out.println(\"Enter Employee Country:\");\r\n\t\tString country = input.nextLine();\r\n\t\t\r\n\t\ttry{\r\n\t\t\tcon = DBConnection.getConnection();\r\n\t\t\tstmt = con.prepareCall(\"{call insertEmployee(?,?,?,?,?,?)}\");\r\n\t\t\tstmt.setInt(1, id);\r\n\t\t\tstmt.setString(2, name);\r\n\t\t\tstmt.setString(3, role);\r\n\t\t\tstmt.setString(4, city);\r\n\t\t\tstmt.setString(5, country);\r\n\t\t\t\r\n\t\t\t\/\/register the OUT parameter before calling the stored procedure\r\n\t\t\tstmt.registerOutParameter(6, java.sql.Types.VARCHAR);\r\n\t\t\t\r\n\t\t\tstmt.executeUpdate();\r\n\t\t\t\r\n\t\t\t\/\/read the OUT parameter now\r\n\t\t\tString result = stmt.getString(6);\r\n\t\t\t\r\n\t\t\tSystem.out.println(\"Employee Record Save Success::\"+result);\r\n\t\t}catch(Exception e){\r\n\t\t\te.printStackTrace();\r\n\t\t}finally{\r\n\t\t\ttry {\r\n\t\t\t\tstmt.close();\r\n\t\t\t\tcon.close();\r\n\t\t\t\tinput.close();\r\n\t\t\t} catch (SQLException e) {\r\n\t\t\t\te.printStackTrace();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n}\r\n<\/code><\/pre>\n<p>\u30e6\u30fc\u30b6\u30fc\u306e\u5165\u529b\u3092\u8aad\u307f\u53d6\u308a\u3001Employee\u30c6\u30fc\u30d6\u30eb\u306b\u4fdd\u5b58\u3059\u308b\u305f\u3081\u306b\u3001PreparedStatement\u3068\u306f\u7570\u306a\u308a\u3001&#8221;{call insertEmployee(?,?,?,?,?,?)}&#8221;\u3092\u4f7f\u7528\u3057\u3066CallableStatement\u3092\u4f5c\u6210\u3057\u3001CallableStatement\u306eregisterOutParameter()\u30e1\u30bd\u30c3\u30c9\u3092\u4f7f\u7528\u3057\u3066OUT\u30d1\u30e9\u30e1\u30fc\u30bf\u3092\u8a2d\u5b9a\u3057\u3066\u3044\u307e\u3059\u3002\u30b9\u30c8\u30a2\u30c9\u30d7\u30ed\u30b7\u30fc\u30b8\u30e3\u3092\u5b9f\u884c\u3059\u308b\u524d\u306bOUT\u30d1\u30e9\u30e1\u30fc\u30bf\u3092\u767b\u9332\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002\u30b9\u30c8\u30a2\u30c9\u30d7\u30ed\u30b7\u30fc\u30b8\u30e3\u304c\u5b9f\u884c\u3055\u308c\u305f\u5f8c\u306f\u3001CallableStatement\u306egetXXX()\u30e1\u30bd\u30c3\u30c9\u3092\u4f7f\u7528\u3057\u3066OUT\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u30c7\u30fc\u30bf\u3092\u53d6\u5f97\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002OUT\u30d1\u30e9\u30e1\u30fc\u30bf\u306e\u767b\u9332\u6642\u306b\u306f\u3001java.sql.Types\u3092\u4f7f\u7528\u3057\u3066OUT\u30d1\u30e9\u30e1\u30fc\u30bf\u306e\u30bf\u30a4\u30d7\u3092\u6307\u5b9a\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002\u3053\u306e\u30b3\u30fc\u30c9\u306f\u4e00\u822c\u7684\u306a\u6027\u8cea\u3092\u6301\u3064\u305f\u3081\u3001MySQL\u306a\u3069\u306e\u4ed6\u306e\u30ea\u30ec\u30fc\u30b7\u30e7\u30ca\u30eb\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u3067\u3082\u540c\u3058\u30b9\u30c8\u30a2\u30c9\u30d7\u30ed\u30b7\u30fc\u30b8\u30e3\u3092\u5b9f\u884c\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002\u4e0a\u8a18\u306eCallableStatement\u306e\u4f8b\u3092\u8907\u6570\u56de\u5b9f\u884c\u3057\u305f\u5834\u5408\u306e\u51fa\u529b\u306f\u4ee5\u4e0b\u306e\u901a\u308a\u3067\u3059\u3002<\/p>\n<pre class=\"post-pre\"><code>Enter Employee ID (int):\r\n1\r\nEnter Employee Name:\r\nPankaj\r\nEnter Employee Role:\r\nDeveloper\r\nEnter Employee City:\r\nBangalore\r\nEnter Employee Country:\r\nIndia\r\nEmployee Record Save Success::TRUE\r\n\r\n-----\r\nEnter Employee ID (int):\r\n2\r\nEnter Employee Name:\r\nPankaj Kumar\r\nEnter Employee Role:\r\nCEO\r\nEnter Employee City:\r\nSan Jose\r\nEnter Employee Country:\r\nUSA\r\nEmployee Record Save Success::FALSE\r\n<\/code><\/pre>\n<p>\u7b2c\u4e8c\u306e\u5b9f\u884c\u304c\u5931\u6557\u3057\u305f\u3053\u3068\u306b\u6ce8\u610f\u3057\u3066\u304f\u3060\u3055\u3044\u3002\u6e21\u3055\u308c\u305f\u540d\u524d\u304c\u5217\u306e\u30b5\u30a4\u30ba\u3088\u308a\u3082\u5927\u304d\u3044\u305f\u3081\u3067\u3059\u3002\u30b9\u30c8\u30a2\u30c9\u30d7\u30ed\u30b7\u30fc\u30b8\u30e3\u3067\u306f\u4f8b\u5916\u3092\u51e6\u7406\u3057\u3001\u3053\u306e\u5834\u5408\u306ffalse\u3092\u8fd4\u3057\u3066\u3044\u307e\u3059\u3002<\/p>\n<h3>\u300cCallableStatement\u306e\u4f8b &#8211; \u30b9\u30c8\u30a2\u30c9\u30d7\u30ed\u30b7\u30fc\u30b8\u30e3\u306eOUT\u30d1\u30e9\u30e1\u30fc\u30bf\u30fc\u300d<\/h3>\n<p>\u4eca\u3001\u5f93\u696d\u54e1\u30c7\u30fc\u30bf\u3092ID\u3067\u53d6\u5f97\u3059\u308b\u305f\u3081\u306e\u30b9\u30c8\u30a2\u30c9\u30d7\u30ed\u30b7\u30fc\u30b8\u30e3\u3092\u4f5c\u6210\u3057\u307e\u3057\u3087\u3046\u3002\u30e6\u30fc\u30b6\u30fc\u306f\u5f93\u696d\u54e1ID\u3092\u5165\u529b\u3057\u3001\u30d7\u30ed\u30b0\u30e9\u30e0\u306f\u5f93\u696d\u54e1\u60c5\u5831\u3092\u8868\u793a\u3057\u307e\u3059\u3002getEmployee.sql<\/p>\n<pre class=\"post-pre\"><code>create or replace\r\nPROCEDURE getEmployee\r\n(in_id IN EMPLOYEE.EMPID%TYPE,\r\n out_name OUT EMPLOYEE.NAME%TYPE,\r\n out_role OUT EMPLOYEE.ROLE%TYPE,\r\n out_city OUT EMPLOYEE.CITY%TYPE,\r\n out_country OUT EMPLOYEE.COUNTRY%TYPE\r\n )\r\nAS\r\nBEGIN\r\n  SELECT NAME, ROLE, CITY, COUNTRY \r\n  INTO out_name, out_role, out_city, out_country\r\n  FROM EMPLOYEE\r\n  WHERE EMPID = in_id;\r\n  \r\nEND;\r\n<\/code><\/pre>\n<p>Java\u3067\u66f8\u304b\u308c\u305fgetEmployee\u30b9\u30c8\u30a2\u30c9\u30d7\u30ed\u30b7\u30fc\u30b8\u30e3\u3092\u4f7f\u7528\u3057\u3066\u3001\u5f93\u696d\u54e1\u30c7\u30fc\u30bf\u3092\u8aad\u307f\u53d6\u308b\u305f\u3081\u306eCallableStatement\u306e\u4f8b\u30d7\u30ed\u30b0\u30e9\u30e0\u306f\u3001JDBCStoredProcedureRead.java\u3067\u3059\u3002<\/p>\n<pre class=\"post-pre\"><code>package com.scdev.jdbc.storedproc;\r\n\r\nimport java.sql.CallableStatement;\r\nimport java.sql.Connection;\r\nimport java.sql.SQLException;\r\nimport java.util.Scanner;\r\n\r\npublic class JDBCStoredProcedureRead {\r\n\r\n\tpublic static void main(String[] args) {\r\n\t\tConnection con = null;\r\n\t\tCallableStatement stmt = null;\r\n\t\t\r\n\t\t\/\/Read User Inputs\r\n\t\tScanner input = new Scanner(System.in);\r\n\t\tSystem.out.println(\"Enter Employee ID (int):\");\r\n\t\tint id = Integer.parseInt(input.nextLine());\r\n\t\t\r\n\t\ttry{\r\n\t\t\tcon = DBConnection.getConnection();\r\n\t\t\tstmt = con.prepareCall(\"{call getEmployee(?,?,?,?,?)}\");\r\n\t\t\tstmt.setInt(1, id);\r\n\t\t\t\r\n\t\t\t\/\/register the OUT parameter before calling the stored procedure\r\n\t\t\tstmt.registerOutParameter(2, java.sql.Types.VARCHAR);\r\n\t\t\tstmt.registerOutParameter(3, java.sql.Types.VARCHAR);\r\n\t\t\tstmt.registerOutParameter(4, java.sql.Types.VARCHAR);\r\n\t\t\tstmt.registerOutParameter(5, java.sql.Types.VARCHAR);\r\n\t\t\t\r\n\t\t\tstmt.execute();\r\n\t\t\t\r\n\t\t\t\/\/read the OUT parameter now\r\n\t\t\tString name = stmt.getString(2);\r\n\t\t\tString role = stmt.getString(3);\r\n\t\t\tString city = stmt.getString(4);\r\n\t\t\tString country = stmt.getString(5);\r\n\t\t\t\r\n\t\t\tif(name !=null){\r\n\t\t\tSystem.out.println(\"Employee Name=\"+name+\",Role=\"+role+\",City=\"+city+\",Country=\"+country);\r\n\t\t\t}else{\r\n\t\t\t\tSystem.out.println(\"Employee Not Found with ID\"+id);\r\n\t\t\t}\r\n\t\t}catch(Exception e){\r\n\t\t\te.printStackTrace();\r\n\t\t}finally{\r\n\t\t\ttry {\r\n\t\t\t\tstmt.close();\r\n\t\t\t\tcon.close();\r\n\t\t\t\tinput.close();\r\n\t\t\t} catch (SQLException e) {\r\n\t\t\t\te.printStackTrace();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n}\r\n<\/code><\/pre>\n<p>\u30d7\u30ed\u30b0\u30e9\u30e0\u306f\u6c4e\u7528\u6027\u304c\u3042\u308a\u3001\u540c\u3058\u30b9\u30c8\u30a2\u30c9\u30d7\u30ed\u30b7\u30fc\u30b8\u30e3\u3092\u6301\u3064\u4efb\u610f\u306e\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u306b\u5bfe\u3057\u3066\u6a5f\u80fd\u3057\u307e\u3059\u3002\u4e0a\u8a18\u306eCallableStatement\u306e\u4f8b\u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u5b9f\u884c\u3057\u305f\u5834\u5408\u3001\u51fa\u529b\u306f\u3069\u306e\u3088\u3046\u306b\u306a\u308b\u304b\u3092\u898b\u3066\u307f\u307e\u3057\u3087\u3046\u3002<\/p>\n<pre class=\"post-pre\"><code>Enter Employee ID (int):\r\n1\r\nEmployee Name=Pankaj,Role=Developer,City=Bangalore,Country=India\r\n<\/code><\/pre>\n<h3>CallableStatement\u306e\u4f8b &#8211; Oracle\u306e\u30b9\u30c8\u30a2\u30c9\u30d7\u30ed\u30b7\u30fc\u30b8\u30e3\u306e\u30ab\u30fc\u30bd\u30eb<\/h3>\n<p>ID\u3092\u901a\u3058\u3066\u5f93\u696d\u54e1\u60c5\u5831\u3092\u8aad\u307f\u53d6\u3063\u3066\u3044\u308b\u305f\u3081\u3001\u5358\u4e00\u306e\u7d50\u679c\u304c\u5f97\u3089\u308c\u3001\u30c7\u30fc\u30bf\u3092\u8aad\u307f\u53d6\u308b\u305f\u3081\u306bOUT\u30d1\u30e9\u30e1\u30fc\u30bf\u30fc\u304c\u3046\u307e\u304f\u6a5f\u80fd\u3057\u307e\u3059\u3002\u3057\u304b\u3057\u3001\u5f79\u5272\u3084\u56fd\u3067\u691c\u7d22\u3059\u308b\u3068\u3001\u8907\u6570\u306e\u884c\u304c\u5f97\u3089\u308c\u308b\u53ef\u80fd\u6027\u304c\u3042\u308a\u307e\u3059\u3002\u305d\u306e\u5834\u5408\u306b\u306f\u3001Oracle\u306e\u30ab\u30fc\u30bd\u30eb\u3092\u4f7f\u7528\u3057\u3066\u7d50\u679c\u30bb\u30c3\u30c8\u306e\u3088\u3046\u306b\u8aad\u307f\u53d6\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002getEmployeeByRole.sql<\/p>\n<pre class=\"post-pre\"><code>create or replace\r\nPROCEDURE getEmployeeByRole\r\n(in_role IN EMPLOYEE.ROLE%TYPE,\r\n out_cursor_emps OUT SYS_REFCURSOR\r\n )\r\nAS\r\nBEGIN\r\n  OPEN out_cursor_emps FOR\r\n  SELECT EMPID, NAME, CITY, COUNTRY \r\n  FROM EMPLOYEE\r\n  WHERE ROLE = in_role;\r\n  \r\nEND;\r\n<\/code><\/pre>\n<p>JDBCStoredProcedureCursor.java\u3092\u65e5\u672c\u8a9e\u3067\u81ea\u7136\u306b\u8a00\u3044\u63db\u3048\u308b\u3068\u3001\u6b21\u306e\u3088\u3046\u306b\u306a\u308a\u307e\u3059\uff1a<br \/>\nJDBCStoredProcedureCursor.java\u3092\u611f\u8003\u3048\u308b\u3002<\/p>\n<pre class=\"post-pre\"><code>package com.scdev.jdbc.storedproc;\r\n\r\nimport java.sql.CallableStatement;\r\nimport java.sql.Connection;\r\nimport java.sql.ResultSet;\r\nimport java.sql.SQLException;\r\nimport java.util.Scanner;\r\n\r\nimport oracle.jdbc.OracleTypes;\r\n\r\npublic class JDBCStoredProcedureCursor {\r\n\r\n\tpublic static void main(String[] args) {\r\n\r\n\t\tConnection con = null;\r\n\t\tCallableStatement stmt = null;\r\n\t\tResultSet rs = null;\r\n\t\t\r\n\t\t\/\/Read User Inputs\r\n\t\tScanner input = new Scanner(System.in);\r\n\t\tSystem.out.println(\"Enter Employee Role:\");\r\n\t\tString role = input.nextLine();\r\n\t\t\r\n\t\ttry{\r\n\t\t\tcon = DBConnection.getConnection();\r\n\t\t\tstmt = con.prepareCall(\"{call getEmployeeByRole(?,?)}\");\r\n\t\t\tstmt.setString(1, role);\r\n\t\t\t\r\n\t\t\t\/\/register the OUT parameter before calling the stored procedure\r\n\t\t\tstmt.registerOutParameter(2, OracleTypes.CURSOR);\r\n\t\t\t\r\n\t\t\tstmt.execute();\r\n\t\t\t\r\n\t\t\t\/\/read the OUT parameter now\r\n\t\t\trs = (ResultSet) stmt.getObject(2);\r\n\t\t\t\r\n\t\t\twhile(rs.next()){\r\n\t\t\t\tSystem.out.println(\"Employee ID=\"+rs.getInt(\"empId\")+\",Name=\"+rs.getString(\"name\")+\r\n\t\t\t\t\t\t\",Role=\"+role+\",City=\"+rs.getString(\"city\")+\r\n\t\t\t\t\t\t\",Country=\"+rs.getString(\"country\"));\r\n\t\t\t}\r\n\t\t}catch(Exception e){\r\n\t\t\te.printStackTrace();\r\n\t\t}finally{\r\n\t\t\ttry {\r\n\t\t\t\trs.close();\r\n\t\t\t\tstmt.close();\r\n\t\t\t\tcon.close();\r\n\t\t\t\tinput.close();\r\n\t\t\t} catch (SQLException e) {\r\n\t\t\t\te.printStackTrace();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n}\r\n<\/code><\/pre>\n<p>\u3053\u306e\u30d7\u30ed\u30b0\u30e9\u30e0\u306f\u3001Oracle OJDBC\u306e\u7279\u5b9a\u306e\u30af\u30e9\u30b9\u3092\u4f7f\u7528\u3057\u3066\u304a\u308a\u3001\u4ed6\u306e\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u3067\u306f\u52d5\u4f5c\u3057\u307e\u305b\u3093\u3002\u79c1\u305f\u3061\u306fOUT\u30d1\u30e9\u30e1\u30fc\u30bf\u306e\u578b\u3092OracleTypes.CURSOR\u3068\u8a2d\u5b9a\u3057\u3001\u305d\u308c\u3092ResultSet\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306b\u5909\u63db\u3057\u3066\u3044\u307e\u3059\u3002\u30b3\u30fc\u30c9\u306e\u4ed6\u306e\u90e8\u5206\u306f\u3001\u5358\u7d14\u306aJDBC\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u3067\u3059\u3002\u4e0a\u8a18\u306eCallableStatement\u306e\u4f8b\u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u5b9f\u884c\u3059\u308b\u3068\u3001\u4ee5\u4e0b\u306e\u51fa\u529b\u304c\u5f97\u3089\u308c\u307e\u3059\u3002<\/p>\n<pre class=\"post-pre\"><code>Enter Employee Role:\r\nDeveloper\r\nEmployee ID=5,Name=Kumar,Role=Developer,City=San Jose,Country=USA\r\nEmployee ID=1,Name=Pankaj,Role=Developer,City=Bangalore,Country=India\r\n<\/code><\/pre>\n<p>\u5f93\u696d\u54e1\u30c6\u30fc\u30d6\u30eb\u306e\u30c7\u30fc\u30bf\u306b\u3088\u3063\u3066\u3001\u7d50\u679c\u306f\u7570\u306a\u308b\u5834\u5408\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n<h3>CallableStatement\u306e\u4f8b &#8211; Oracle DB\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3068STRUCT<\/h3>\n<p>\u300cinsertEmployee\u300d\u3068\u300cgetEmployee\u300d\u3068\u3044\u3046\u30b9\u30c8\u30a2\u30c9\u30d7\u30ed\u30b7\u30fc\u30b8\u30e3\u3092\u898b\u308b\u3068\u3001Employee\u30c6\u30fc\u30d6\u30eb\u306e\u3059\u3079\u3066\u306e\u30d1\u30e9\u30e1\u30fc\u30bf\u304c\u30d7\u30ed\u30b7\u30fc\u30b8\u30e3\u5185\u306b\u3042\u308a\u307e\u3059\u3002\u30ab\u30e9\u30e0\u306e\u6570\u304c\u5897\u3048\u308b\u3068\u3001\u6df7\u4e71\u3084\u30a8\u30e9\u30fc\u304c\u5897\u3048\u308b\u53ef\u80fd\u6027\u304c\u3042\u308a\u307e\u3059\u3002Oracle\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u3067\u306f\u3001\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3092\u4f5c\u6210\u3059\u308b\u30aa\u30d7\u30b7\u30e7\u30f3\u304c\u3042\u308a\u3001\u305d\u308c\u3089\u3068\u4e00\u7dd2\u306bOracle STRUCT\u3092\u4f7f\u7528\u3067\u304d\u307e\u3059\u3002\u307e\u305a\u3001Employee\u30c6\u30fc\u30d6\u30eb\u306e\u30ab\u30e9\u30e0\u306e\u305f\u3081\u306eOracle DB\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3092\u5b9a\u7fa9\u3057\u307e\u3057\u3087\u3046\u3002EMPLOYEE_OBJ.sql<\/p>\n<pre class=\"post-pre\"><code>create or replace TYPE EMPLOYEE_OBJ AS OBJECT\r\n(\r\n  EMPID NUMBER,\r\n  NAME VARCHAR2(10),\r\n  ROLE VARCHAR2(10),\r\n  CITY  VARCHAR2(10),\r\n  COUNTRY  VARCHAR2(10)\r\n  \r\n  );\r\n<\/code><\/pre>\n<p>\u4eca\u3001EMPLOYEE_OBJ\u3092\u4f7f\u7528\u3057\u3066insertEmployee\u30b9\u30c8\u30a2\u30c9\u30d7\u30ed\u30b7\u30fc\u30b8\u30e3\u3092\u66f8\u304d\u76f4\u3057\u307e\u3057\u3087\u3046\u3002insertEmployeeObject.sql<\/p>\n<pre class=\"post-pre\"><code>CREATE OR REPLACE PROCEDURE insertEmployeeObject\r\n(IN_EMPLOYEE_OBJ IN EMPLOYEE_OBJ,\r\n out_result OUT VARCHAR2)\r\nAS\r\nBEGIN\r\n  INSERT INTO EMPLOYEE (EMPID, NAME, ROLE, CITY, COUNTRY) values \r\n  (IN_EMPLOYEE_OBJ.EMPID, IN_EMPLOYEE_OBJ.NAME, IN_EMPLOYEE_OBJ.ROLE, IN_EMPLOYEE_OBJ.CITY, IN_EMPLOYEE_OBJ.COUNTRY);\r\n  commit;\r\n  \r\n  out_result := 'TRUE';\r\n  \r\nEXCEPTION\r\n  WHEN OTHERS THEN \r\n  out_result := 'FALSE';\r\n  ROLLBACK;\r\nEND;\r\n<\/code><\/pre>\n<p>Java\u30d7\u30ed\u30b0\u30e9\u30e0\u3067insertEmployeeObject\u30b9\u30c8\u30a2\u30c9\u30d7\u30ed\u30b7\u30fc\u30b8\u30e3\u3092\u3069\u306e\u3088\u3046\u306b\u547c\u3073\u51fa\u3059\u304b\u898b\u3066\u307f\u307e\u3057\u3087\u3046\u3002JDBCStoredProcedureOracleStruct.java\u3067\u3059\u3002<\/p>\n<pre class=\"post-pre\"><code>package com.scdev.jdbc.storedproc;\r\n\r\nimport java.sql.Connection;\r\nimport java.sql.SQLException;\r\nimport java.util.Scanner;\r\n\r\nimport oracle.jdbc.OracleCallableStatement;\r\nimport oracle.sql.STRUCT;\r\nimport oracle.sql.StructDescriptor;\r\n\r\npublic class JDBCStoredProcedureOracleStruct {\r\n\r\n\tpublic static void main(String[] args) {\r\n\t\tConnection con = null;\r\n\t\tOracleCallableStatement stmt = null;\r\n\t\t\r\n\t\t\/\/Create Object Array for Stored Procedure call\r\n\t\tObject[] empObjArray = new Object[5];\r\n\t\t\/\/Read User Inputs\r\n\t\tScanner input = new Scanner(System.in);\r\n\t\tSystem.out.println(\"Enter Employee ID (int):\");\r\n\t\tempObjArray[0] = Integer.parseInt(input.nextLine());\r\n\t\tSystem.out.println(\"Enter Employee Name:\");\r\n\t\tempObjArray[1] = input.nextLine();\r\n\t\tSystem.out.println(\"Enter Employee Role:\");\r\n\t\tempObjArray[2] = input.nextLine();\r\n\t\tSystem.out.println(\"Enter Employee City:\");\r\n\t\tempObjArray[3] = input.nextLine();\r\n\t\tSystem.out.println(\"Enter Employee Country:\");\r\n\t\tempObjArray[4] = input.nextLine();\r\n\t\t\r\n\t\ttry{\r\n\t\t\tcon = DBConnection.getConnection();\r\n\t\t\t\r\n\t\t\tStructDescriptor empStructDesc = StructDescriptor.createDescriptor(\"EMPLOYEE_OBJ\", con);\r\n\t\t\tSTRUCT empStruct = new STRUCT(empStructDesc, con, empObjArray);\r\n\t\t\tstmt = (OracleCallableStatement) con.prepareCall(\"{call insertEmployeeObject(?,?)}\");\r\n\t\t\t\r\n\t\t\tstmt.setSTRUCT(1, empStruct);\r\n\t\t\t\r\n\t\t\t\/\/register the OUT parameter before calling the stored procedure\r\n\t\t\tstmt.registerOutParameter(2, java.sql.Types.VARCHAR);\r\n\t\t\t\r\n\t\t\tstmt.executeUpdate();\r\n\t\t\t\r\n\t\t\t\/\/read the OUT parameter now\r\n\t\t\tString result = stmt.getString(2);\r\n\t\t\t\r\n\t\t\tSystem.out.println(\"Employee Record Save Success::\"+result);\r\n\t\t}catch(Exception e){\r\n\t\t\te.printStackTrace();\r\n\t\t}finally{\r\n\t\t\ttry {\r\n\t\t\t\tstmt.close();\r\n\t\t\t\tcon.close();\r\n\t\t\t\tinput.close();\r\n\t\t\t} catch (SQLException e) {\r\n\t\t\t\te.printStackTrace();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n}\r\n<\/code><\/pre>\n<p>\u307e\u305a\u7b2c\u4e00\u306b\u3001EMPLOYEE_OBJ\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3068\u540c\u3058\u9577\u3055\u306e\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u914d\u5217\u3092\u4f5c\u6210\u3057\u3066\u3044\u307e\u3059\u3002\u6b21\u306b\u3001EMPLOYEE_OBJ\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u5909\u6570\u306b\u5fdc\u3058\u3066\u5024\u3092\u8a2d\u5b9a\u3057\u3066\u3044\u307e\u3059\u3002\u3053\u308c\u306f\u975e\u5e38\u306b\u91cd\u8981\u3067\u3059\u3002\u305d\u3046\u3057\u306a\u3044\u3068\u3001\u30c7\u30fc\u30bf\u304c\u9593\u9055\u3063\u305f\u5217\u306b\u633f\u5165\u3055\u308c\u308b\u53ef\u80fd\u6027\u304c\u3042\u308a\u307e\u3059\u3002\u305d\u306e\u5f8c\u3001oracle.sql.StructDescriptor\u3068\u79c1\u305f\u3061\u306e\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u914d\u5217\u3092\u4f7f\u7528\u3057\u3066\u3001oracle.sql.STRUCT\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3092\u4f5c\u6210\u3057\u3066\u3044\u307e\u3059\u3002STRUCT\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u304c\u4f5c\u6210\u3055\u308c\u305f\u3089\u3001\u305d\u308c\u3092\u30b9\u30c8\u30a2\u30c9\u30d7\u30ed\u30b7\u30fc\u30b8\u30e3\u306eIN\u30d1\u30e9\u30e1\u30fc\u30bf\u3068\u3057\u3066\u8a2d\u5b9a\u3057\u3001OUT\u30d1\u30e9\u30e1\u30fc\u30bf\u3092\u767b\u9332\u3057\u3066\u5b9f\u884c\u3057\u307e\u3059\u3002\u3053\u306e\u30b3\u30fc\u30c9\u306fOJDBC API\u3068\u5bc6\u63a5\u306b\u7d50\u3073\u3064\u3044\u3066\u304a\u308a\u3001\u4ed6\u306e\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u3067\u306f\u52d5\u4f5c\u3057\u307e\u305b\u3093\u3002\u3053\u306e\u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u5b9f\u884c\u3059\u308b\u3068\u6b21\u306e\u3088\u3046\u306a\u51fa\u529b\u304c\u8868\u793a\u3055\u308c\u307e\u3059\u3002<\/p>\n<pre class=\"post-pre\"><code>Enter Employee ID (int):\r\n5\r\nEnter Employee Name:\r\nKumar\r\nEnter Employee Role:\r\nDeveloper\r\nEnter Employee City:\r\nSan Jose\r\nEnter Employee Country:\r\nUSA\r\nEmployee Record Save Success::TRUE\r\n<\/code><\/pre>\n<p>\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u306e\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306fOUT\u30d1\u30e9\u30e1\u30fc\u30bf\u3068\u3057\u3066\u3082\u4f7f\u7528\u3067\u304d\u3001\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u304b\u3089\u5024\u3092\u53d6\u5f97\u3059\u308b\u305f\u3081\u306b\u8aad\u307f\u8fbc\u3080\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002\u3053\u308c\u304cJava\u306eCallableStatement\u3092\u4f7f\u7528\u3057\u305f\u30b9\u30c8\u30a2\u30c9\u30d7\u30ed\u30b7\u30fc\u30b8\u30e3\u306e\u5b9f\u884c\u306e\u4f8b\u3067\u3059\u3002\u4f55\u304b\u3092\u5b66\u3093\u3067\u3044\u305f\u3060\u3051\u308c\u3070\u5e78\u3044\u3067\u3059\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Java\u306eCallableStatement\u306f\u3001Java\u30d7\u30ed\u30b0\u30e9\u30e0\u304b\u3089\u30b9\u30c8\u30a2\u30c9\u30d7\u30ed\u30b7\u30fc\u30b8\u30e3\u3092\u547c\u3073\u51fa\u3059\u305f\u3081\u306b\u4f7f\u7528\u3055\u308c\u307e\u3059\u3002\u30b9\u30c8\u30a2\u30c9\u30d7\u30ed\u30b7\u30fc\u30b8\u30e3\u306f\u3001\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u3067\u30b3\u30f3\u30d1\u30a4\u30eb\u3055\u308c\u305f\u3044\u304f\u3064\u304b\u306e\u30bf\u30b9\u30af\u306e\u305f\u3081\u306e\u30b9\u30c6\u30fc\u30c8\u30e1\u30f3\u30c8\u306e\u30b0\u30eb\u30fc [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[26,61],"class_list":["post-760","post","type-post","status-publish","format-standard","hentry","category-uncategorized","tag-26","tag-61"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.5 (Yoast SEO v21.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Java\u306e\u4f8b\u3067\u306eCallableStatement - Blog - Silicon Cloud<\/title>\n<meta name=\"description\" content=\"Java\u306e\u4f8b\u3067\u306eCallableStatement\u3092\u5206\u304b\u308a\u3084\u3059\u304f\u89e3\u8aac\u3002\u5b9f\u8df5\u7684\u306a\u4f8b\u3068\u30b3\u30fc\u30c9\u3001\u6ce8\u610f\u70b9\u3092\u542b\u3081\u3066\u521d\u5fc3\u8005\u306b\u3082\u7406\u89e3\u3067\u304d\u308b\u3088\u3046\u8aac\u660e\u3057\u307e\u3059\u3002\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.silicloud.com\/ja\/blog\/java\u306e\u4f8b\u3067\u306ecallablestatement\/\" \/>\n<meta property=\"og:locale\" content=\"ja_JP\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Java\u306e\u4f8b\u3067\u306eCallableStatement\" \/>\n<meta property=\"og:description\" content=\"Java\u306e\u4f8b\u3067\u306eCallableStatement\u3092\u5206\u304b\u308a\u3084\u3059\u304f\u89e3\u8aac\u3002\u5b9f\u8df5\u7684\u306a\u4f8b\u3068\u30b3\u30fc\u30c9\u3001\u6ce8\u610f\u70b9\u3092\u542b\u3081\u3066\u521d\u5fc3\u8005\u306b\u3082\u7406\u89e3\u3067\u304d\u308b\u3088\u3046\u8aac\u660e\u3057\u307e\u3059\u3002\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/ja\/blog\/java\u306e\u4f8b\u3067\u306ecallablestatement\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:published_time\" content=\"2022-09-13T13:04:06+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-07-31T17:13:59+00:00\" \/>\n<meta name=\"author\" content=\"\u967d, \u5411\u5b87\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u57f7\u7b46\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"\u967d, \u5411\u5b87\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u63a8\u5b9a\u8aad\u307f\u53d6\u308a\u6642\u9593\" \/>\n\t<meta name=\"twitter:data2\" content=\"29\u5206\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/ja\/blog\/java%e3%81%ae%e4%be%8b%e3%81%a7%e3%81%aecallablestatement\/\",\"url\":\"https:\/\/www.silicloud.com\/ja\/blog\/java%e3%81%ae%e4%be%8b%e3%81%a7%e3%81%aecallablestatement\/\",\"name\":\"Java\u306e\u4f8b\u3067\u306eCallableStatement - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/ja\/blog\/#website\"},\"datePublished\":\"2022-09-13T13:04:06+00:00\",\"dateModified\":\"2025-07-31T17:13:59+00:00\",\"author\":{\"@id\":\"https:\/\/www.silicloud.com\/ja\/blog\/#\/schema\/person\/4aef6196128551a0f5d66db46c42866c\"},\"description\":\"Java\u306e\u4f8b\u3067\u306eCallableStatement\u3092\u5206\u304b\u308a\u3084\u3059\u304f\u89e3\u8aac\u3002\u5b9f\u8df5\u7684\u306a\u4f8b\u3068\u30b3\u30fc\u30c9\u3001\u6ce8\u610f\u70b9\u3092\u542b\u3081\u3066\u521d\u5fc3\u8005\u306b\u3082\u7406\u89e3\u3067\u304d\u308b\u3088\u3046\u8aac\u660e\u3057\u307e\u3059\u3002\",\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/ja\/blog\/java%e3%81%ae%e4%be%8b%e3%81%a7%e3%81%aecallablestatement\/#breadcrumb\"},\"inLanguage\":\"ja\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/ja\/blog\/java%e3%81%ae%e4%be%8b%e3%81%a7%e3%81%aecallablestatement\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/ja\/blog\/java%e3%81%ae%e4%be%8b%e3%81%a7%e3%81%aecallablestatement\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u9996\u9875\",\"item\":\"https:\/\/www.silicloud.com\/ja\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Java\u306e\u4f8b\u3067\u306eCallableStatement\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.silicloud.com\/ja\/blog\/#website\",\"url\":\"https:\/\/www.silicloud.com\/ja\/blog\/\",\"name\":\"Blog - Silicon Cloud\",\"description\":\"\",\"inLanguage\":\"ja\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.silicloud.com\/ja\/blog\/#\/schema\/person\/4aef6196128551a0f5d66db46c42866c\",\"name\":\"\u967d, \u5411\u5b87\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ja\",\"@id\":\"https:\/\/www.silicloud.com\/ja\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/ad96b120e219751fa368cbd7d2c48ca01b59185e6ed394449bac72614a760bf3?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/ad96b120e219751fa368cbd7d2c48ca01b59185e6ed394449bac72614a760bf3?s=96&d=mm&r=g\",\"caption\":\"\u967d, \u5411\u5b87\"},\"url\":\"https:\/\/www.silicloud.com\/ja\/blog\/author\/hinatasora\/\"},{\"@type\":\"ImageObject\",\"inLanguage\":\"ja\",\"@id\":\"https:\/\/www.silicloud.com\/ja\/blog\/java%e3%81%ae%e4%be%8b%e3%81%a7%e3%81%aecallablestatement\/#local-main-organization-logo\",\"url\":\"\",\"contentUrl\":\"\",\"caption\":\"Blog - Silicon Cloud\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Java\u306e\u4f8b\u3067\u306eCallableStatement - Blog - Silicon Cloud","description":"Java\u306e\u4f8b\u3067\u306eCallableStatement\u3092\u5206\u304b\u308a\u3084\u3059\u304f\u89e3\u8aac\u3002\u5b9f\u8df5\u7684\u306a\u4f8b\u3068\u30b3\u30fc\u30c9\u3001\u6ce8\u610f\u70b9\u3092\u542b\u3081\u3066\u521d\u5fc3\u8005\u306b\u3082\u7406\u89e3\u3067\u304d\u308b\u3088\u3046\u8aac\u660e\u3057\u307e\u3059\u3002","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.silicloud.com\/ja\/blog\/java\u306e\u4f8b\u3067\u306ecallablestatement\/","og_locale":"ja_JP","og_type":"article","og_title":"Java\u306e\u4f8b\u3067\u306eCallableStatement","og_description":"Java\u306e\u4f8b\u3067\u306eCallableStatement\u3092\u5206\u304b\u308a\u3084\u3059\u304f\u89e3\u8aac\u3002\u5b9f\u8df5\u7684\u306a\u4f8b\u3068\u30b3\u30fc\u30c9\u3001\u6ce8\u610f\u70b9\u3092\u542b\u3081\u3066\u521d\u5fc3\u8005\u306b\u3082\u7406\u89e3\u3067\u304d\u308b\u3088\u3046\u8aac\u660e\u3057\u307e\u3059\u3002","og_url":"https:\/\/www.silicloud.com\/ja\/blog\/java\u306e\u4f8b\u3067\u306ecallablestatement\/","og_site_name":"Blog - Silicon Cloud","article_published_time":"2022-09-13T13:04:06+00:00","article_modified_time":"2025-07-31T17:13:59+00:00","author":"\u967d, \u5411\u5b87","twitter_card":"summary_large_image","twitter_misc":{"\u57f7\u7b46\u8005":"\u967d, \u5411\u5b87","\u63a8\u5b9a\u8aad\u307f\u53d6\u308a\u6642\u9593":"29\u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/ja\/blog\/java%e3%81%ae%e4%be%8b%e3%81%a7%e3%81%aecallablestatement\/","url":"https:\/\/www.silicloud.com\/ja\/blog\/java%e3%81%ae%e4%be%8b%e3%81%a7%e3%81%aecallablestatement\/","name":"Java\u306e\u4f8b\u3067\u306eCallableStatement - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/ja\/blog\/#website"},"datePublished":"2022-09-13T13:04:06+00:00","dateModified":"2025-07-31T17:13:59+00:00","author":{"@id":"https:\/\/www.silicloud.com\/ja\/blog\/#\/schema\/person\/4aef6196128551a0f5d66db46c42866c"},"description":"Java\u306e\u4f8b\u3067\u306eCallableStatement\u3092\u5206\u304b\u308a\u3084\u3059\u304f\u89e3\u8aac\u3002\u5b9f\u8df5\u7684\u306a\u4f8b\u3068\u30b3\u30fc\u30c9\u3001\u6ce8\u610f\u70b9\u3092\u542b\u3081\u3066\u521d\u5fc3\u8005\u306b\u3082\u7406\u89e3\u3067\u304d\u308b\u3088\u3046\u8aac\u660e\u3057\u307e\u3059\u3002","breadcrumb":{"@id":"https:\/\/www.silicloud.com\/ja\/blog\/java%e3%81%ae%e4%be%8b%e3%81%a7%e3%81%aecallablestatement\/#breadcrumb"},"inLanguage":"ja","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/ja\/blog\/java%e3%81%ae%e4%be%8b%e3%81%a7%e3%81%aecallablestatement\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/ja\/blog\/java%e3%81%ae%e4%be%8b%e3%81%a7%e3%81%aecallablestatement\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u9996\u9875","item":"https:\/\/www.silicloud.com\/ja\/blog\/"},{"@type":"ListItem","position":2,"name":"Java\u306e\u4f8b\u3067\u306eCallableStatement"}]},{"@type":"WebSite","@id":"https:\/\/www.silicloud.com\/ja\/blog\/#website","url":"https:\/\/www.silicloud.com\/ja\/blog\/","name":"Blog - Silicon Cloud","description":"","inLanguage":"ja"},{"@type":"Person","@id":"https:\/\/www.silicloud.com\/ja\/blog\/#\/schema\/person\/4aef6196128551a0f5d66db46c42866c","name":"\u967d, \u5411\u5b87","image":{"@type":"ImageObject","inLanguage":"ja","@id":"https:\/\/www.silicloud.com\/ja\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/ad96b120e219751fa368cbd7d2c48ca01b59185e6ed394449bac72614a760bf3?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/ad96b120e219751fa368cbd7d2c48ca01b59185e6ed394449bac72614a760bf3?s=96&d=mm&r=g","caption":"\u967d, \u5411\u5b87"},"url":"https:\/\/www.silicloud.com\/ja\/blog\/author\/hinatasora\/"},{"@type":"ImageObject","inLanguage":"ja","@id":"https:\/\/www.silicloud.com\/ja\/blog\/java%e3%81%ae%e4%be%8b%e3%81%a7%e3%81%aecallablestatement\/#local-main-organization-logo","url":"","contentUrl":"","caption":"Blog - Silicon Cloud"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/ja\/blog\/wp-json\/wp\/v2\/posts\/760","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.silicloud.com\/ja\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.silicloud.com\/ja\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/ja\/blog\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/ja\/blog\/wp-json\/wp\/v2\/comments?post=760"}],"version-history":[{"count":1,"href":"https:\/\/www.silicloud.com\/ja\/blog\/wp-json\/wp\/v2\/posts\/760\/revisions"}],"predecessor-version":[{"id":44677,"href":"https:\/\/www.silicloud.com\/ja\/blog\/wp-json\/wp\/v2\/posts\/760\/revisions\/44677"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/ja\/blog\/wp-json\/wp\/v2\/media?parent=760"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/ja\/blog\/wp-json\/wp\/v2\/categories?post=760"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/ja\/blog\/wp-json\/wp\/v2\/tags?post=760"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}