...
Примеры подготовлены для работы под учётной записью AIS_RPC на тестовой базе hydra2.
Основной язык программирования используемый для разработки интеграций требующих взаимодействия с API - Python.
Во всех примерах по работе с SELECT выполняется запрос на получение наименования типа субъекта и его кода по идентификатору со значением 100
...
Code Block | ||
---|---|---|
| ||
<?php // Database sid $dsn = 'hydra2'; // Database login $login = 'AIS_RPC'; // Database password $password = '********'; // Procedure $procedure = <<< EOT BEGIN SI_PERSONS_PKG.SI_PERSONS_PUT( num_N_FIRM_ID => 100, num_N_SUBJECT_ID => :num_N_SUBJECT_ID, vch_VC_SURNAME => 'Ivanov', vch_VC_FIRST_NAME => 'Ivan', vch_VC_SECOND_NAME => 'Ivanovich' ); END; EOT; // Output variable $num_N_SUBJECT_ID = null; // Establish the database connection $dbh = oci_connect($login, $password, $dsn); if (!$dbh) { $e = oci_error(); exit(1); } // Prepare an Oracle statement for execution $sth = oci_parse($dbh, $procedure); // Bind variables oci_bind_by_name($sth, ':num_N_SUBJECT_ID', $num_N_SUBJECT_ID, 32); // Call procedure oci_execute($sth, OCI_NO_AUTO_COMMIT); // Print value of a created basic subject echo "Created basic subject " . $num_N_SUBJECT_ID . "\n"; // Commit changes oci_commit($dbh); // Free prepared statement oci_free_statement($sth); // Close the database connection oci_close($dbh); |
JAVA
Работа с СУБД выполняется с помощью Oracle JDBC
...
Code Block | ||
---|---|---|
| ||
plugins { id 'java' id 'application' } group 'org.example' version '1.0-SNAPSHOT' mainClassName='Oracle' repositories { mavenCentral() } dependencies { implementation "com.oracle.ojdbc:ojdbc8:19.3.0.0" } |
SELECT
Code Block | ||||
---|---|---|---|---|
| ||||
import java.sql.*; public class Oracle { public static void main(String[] args) { String dsn = "hydra2"; String login = "AIS_RPC"; String password = "********"; try { // Establish the database connection Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@" + dsn, login, password); // Call exec method Oracle.select(conn); // Close the database connection conn.close(); } catch (SQLException e) { System.err.println("Connection error!"); e.printStackTrace(); } } public static void exec(Connection conn) { // Select query String query = "SELECT VC_SUBJ_TYPE_NAME, VC_CODE FROM SI_V_SUBJECTS WHERE N_SUBJECT_ID = 100"; try { // Create an Oracle statement for execution Statement stmt = conn.createStatement(); // Execute query ResultSet rs = stmt.executeQuery(query); // Get and output the result. while (rs.next()) { String vcSubjTypeName = rs.getString("VC_SUBJ_TYPE_NAME"); String vcCode = rs.getString("VC_CODE"); System.out.println("VC_SUBJ_TYPE_NAME: " + vcSubjTypeName); System.out.println("VC_CODE: " + vcCode); } } catch (SQLException e) { System.err.println("Select error!"); e.printStackTrace(); } } } |
PROCEDURE
Code Block | ||||
---|---|---|---|---|
| ||||
import java.sql.*; import oracle.jdbc.OracleTypes; public class Oracle { public static void main(String[] args) { String dsn = "hydra2"; String login = "AIS_RPC"; String password = "********"; try { // Establish the database connection Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@" + dsn, login, password); // Disable autocommit conn.setAutoCommit(false); // Call exec method Oracle.exec(conn); // Close the database connection conn.close(); } catch (SQLException e) { System.err.println("Connection error!"); e.printStackTrace(); } } public static void exec(Connection conn) { // Procedure String procedure = "{call SI_PERSONS_PKG.SI_PERSONS_PUT(num_N_FIRM_ID => 100," + "num_N_SUBJECT_ID => ?," + "vch_VC_SURNAME => 'Ivanov'," + "vch_VC_FIRST_NAME => 'Ivan'," + "vch_VC_SECOND_NAME => 'Ivanovich')}"; try { // Prepare an Oracle statement for execution CallableStatement stmt = conn.prepareCall(procedure); // Add output parameter stmt.registerOutParameter(1, OracleTypes.NUMBER); // Execute query stmt.execute(); // Print value of a created basic subject System.out.println("Created basic subject " + stmt.getLong(1)); // Commit changes conn.commit(); } catch (SQLException e) { System.err.println("Procedure error!"); e.printStackTrace(); } } } |
...