Гость
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / ado.net и oracle user type / 3 сообщений из 3, страница 1 из 1
10.06.2015, 10:45
    #38980856
sergei64_89
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ado.net и oracle user type
есть пакет в схеме, в нем определен тип.
Код: plsql
1.
2.
3.
4.
5.
CREATE OR REPLACE PACKAGE schema1.package1 is
TYPE UserType IS RECORD
(....)
function check(Pin varchar2) return UserType ;
END package1 ;


Приложение на c# подключается через другую схему(ей дан грант на функцию из schema1). Я пытаюсь через ado.net выполнить функцию check
...
Рейтинг: 0 / 0
10.06.2015, 10:47
    #38980858
sergei64_89
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ado.net и oracle user type
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
 using (OracleConnection connection =new OracleConnection(db.Connection.ConnectionString))
            {
                connection.Open();
                using( OracleCommand command = new OracleCommand( "begin :rv=schema1.package1.check(:Pin); end;", connection ) )
                {
                    command.CommandType = CommandType.Text;
                    OracleParameter inputParam = new OracleParameter( "Pin", OracleDbType.Varchar2 );
                    inputParam.Value = "Moskow";
                    command.Parameters.Add( inputParam );
                    OracleParameter param = new OracleParameter( "rv", OracleDbType.Object, ParameterDirection.Output );
                    param.UdtTypeName = "schema1.package1.UserType";
                    param.Value = result;
                    command.Parameters.Add(param);
                    command.ExecuteNonQuery();
                }
            }


Выводит ошибку что такой тип отсутствует в системе
...
Рейтинг: 0 / 0
16.06.2015, 11:30
    #38984552
sphinx_mv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ado.net и oracle user type
sergei64_89
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
 using (OracleConnection connection =new OracleConnection(db.Connection.ConnectionString))
            {
                connection.Open();
                using( OracleCommand command = new OracleCommand( "begin :rv=schema1.package1.check(:Pin); end;", connection ) )
                {
                    command.CommandType = CommandType.Text;
                    OracleParameter inputParam = new OracleParameter( "Pin", OracleDbType.Varchar2 );
                    inputParam.Value = "Moskow";
                    command.Parameters.Add( inputParam );
                    OracleParameter param = new OracleParameter( "rv", OracleDbType.Object, ParameterDirection.Output );
                    param.UdtTypeName = "schema1.package1.UserType";
                    param.Value = result;
                    command.Parameters.Add(param);
                    command.ExecuteNonQuery();
                }
            }


Выводит ошибку что такой тип отсутствует в системе Пакетные типы оракул не сподобился сделать доступными.
Только через CREATE TYPE
...
Рейтинг: 0 / 0
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / ado.net и oracle user type / 3 сообщений из 3, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]