Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
VC_SUBJ_TYPE_NAME: Оператор связи
VC_CODE: ЛюбимыйТелеком


Во всех примерах по работе с процедурами вызыаается создание физического лица Ivanov Ivan Ivanovich в основной фирме (id: 100) и вывод идентификатора созданного базового субъекта учёта.

Пример результата выполнения:

Code Block
Created basic subject 11150997001.0


Python

Работа с СУБД выполняется с использованием модуля cx-oracle

...

Code Block
languagepy
"""Example of a select query to an Oracle Database"""
import cx_Oracle

# Establish the database connection
dbh = cx_Oracle.connect(user='AIS_RPC',
                        password='********',
                        dsn="hydra2"
                        )

# Obtain a cursor and execute query
cursor = dbh.cursor()
cursor.execute("""SELECT VC_SUBJ_TYPE_NAME, VC_CODE
FROM SI_V_SUBJECTS
WHERE N_SUBJECT_ID = 100""")

# Fetch column names and data as an associative array
columns = [i[0] for i in cursor.description]
data = [dict(zip(columns, row)) for row in cursor.fetchall()]

# Print data
for row in data:
    print(f"VC_SUBJ_TYPE_NAME: {row['VC_SUBJ_TYPE_NAME']}")
    print(f"VC_CODE: {row['VC_CODE']}")


# Close the database connection
dbh.close()


PROCEDURE

Code Block
"""Example of a procedure call to an Oracle database"""
import cx_Oracle

# Establish the database connection
dbh = cx_Oracle.connect(user='AIS_RPC',
                        password='********',
                        dsn="hydra2"
                        )

# Obtain a cursor
cursor = dbh.cursor()

# Prepare variables
num_N_SUBJECT_ID = cursor.var(cx_Oracle.NUMBER)

# Call procedure
cursor.execute("""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;""", num_N_SUBJECT_ID=num_N_SUBJECT_ID)

# Print value of a created basic subject
print(f"Created basic subject {num_N_SUBJECT_ID.getvalue()}")

# Commit changes
dbh.commit()

# Close the database connection
dbh.close()