create or replace type dateArray
tkyte@TKYTE816> create or replace type dateArray as table of date; Type created.
tkyte@TKYTE816> create or replace type strArray as table of varchar2(255); Type created.
Теперь рассмотрим спецификацию PL/SQL-пакета для этого примера. Она будет состоять из набора перегруженных процедур и функций для проверки приема и передачи параметров в хранимых процедурах на языке Java. Каждая подпрограмма имеет параметр, предаваемый в режиме
IN, и параметр, передаваемый в режиме
OUT, что позволяет продемонстрировать передачу данных в Java-код и возвращение результатов.
Первая процедура передает числовые данные. Данные Oracle типа
NUMBER
будут передаваться как Java-тип
BigDecimal. Их можно принимать и как данные типа
int, и как строки и как другие типы, но при этом возможна потеря точности. Данные типа
BigDecimal могут без проблем принять любое значение типа
NUMBER от сервера Oracle.
Обратите внимание, что параметр, передаваемый в режиме
OUT, на уровне Java принимается как массив данных типа
BigDecimal. Так будет для всех параметров, передаваемых Java в режиме
OUT. Для изменения параметра, переданного Java, нужно передавать "массив" параметров (в этом массиве будет только один элемент) и изменять соответствующий элемент массива. Далее, при описании кода на языке Java, вы увидите, как это сказывается на исходном коде.
tkyte@TKYTE816> create or replace package demo_passing_pkg 2 as 3 procedure pass(p_in in number, p_out out number) 4 as 5 language java 6 name 'demo_passing_pkg.pass(java.math.BigDecimal, 7 java.math.BigDecimal[])'
Даты Oracle сопоставляются типу данных
Timestamp. И в этом случае можно было бы сопоставить датам множество других типов, например
String, но во избежание потери информации при неявных преобразованиях я выбрал тип
Timestamp, который позволяет сохранить все данные, содержащиеся в объектах Oracle типа
DATE.
8 9 procedure pass(p_in in date, p_out out date) 10 as 11 language java 12 name 'demo_passing_pkg.pass(java.sql.Timestamp, 13 java.sql.Timestamp[])';
Содержание Назад Вперед
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий