powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Создание типа
10 сообщений из 10, страница 1 из 1
Создание типа
    #36990579
natnim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте.
В своей функции:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
create or replace function Get_CMI_With_Losses
(
  StartDate in Date, 
  EndDate in Date, 
  TreeLevel in integer
) 
return L_Get_CMI_With_Losses
as
  ADDRESS string; 
  AKT number; 
  REAKT number; 
  VAL number; 
  LOSSES number; 

  result L_Get_CMI_With_Losses;
 
begin

  result := L_Get_CMI_With_Losses();

        result.EXTEND;
        result( result.LAST ) := T_Get_CMI_With_Losses
        (
          ADDRESS,
          AKT,
          REAKT,
          VAL,
          round(LOSSES, 0 )
        );

  return(result);
end Get_CMI_With_Losses;

в качестве возвращаемого значения использую тип L_Get_CMI_With_Losses:

Код: plaintext
CREATE OR REPLACE TYPE "L_Get_CMI_With_Losses" AS TABLE OF "T_Get_CMI_With_Losses";

в качестве T_Get_CMI_With_Losses:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
CREATE OR REPLACE TYPE PUBASKUE."T_GET_BUILDING_ADDRESS" AS OBJECT(
       REGION varchar2( 200 ),
       CITY varchar2( 200 ),
       STREET varchar2( 200 ),
       HOME varchar2( 200 ),
       BUILDING varchar2( 200 )
     );
Проблема в том, что при попытке откомпилить эти два типа возникают ошибки. Я их прогоняю как обычные запросы. Соостветственно, они не записываются в базу и функция не работает.
Подскажите, пожалуйста, в чем может быть дело?
Спасибо.
...
Рейтинг: 0 / 0
Создание типа
    #36990608
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
natnimПроблема в том, что при попытке откомпилить эти два типа возникают ошибки.
...
в чем может быть дело?
Дело может быть в том, что вы допустили ошибки, которые теперь возникают.
Для начала откажитесь от двойных кавычек - Вы все равно не умеете ими пользоваться.
Потом расположите statements в правильном порядке.
Ну и, наконец, покажите сессию sql*plus, в которой "возникают ошибки".
...
Рейтинг: 0 / 0
Создание типа
    #36990765
collow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А самое главное - сами ошибки.
...
Рейтинг: 0 / 0
Создание типа
    #36991002
natnim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за помощь.
1. Удалила кавычки - откомпилилось успешно, функция заработала!
2. Потребовалось в тип
Код: plaintext
T_Get_CMI_With_Losses 
добавить еще один параметр
(тип я привела здесь по ошибке, прошу прощения, нужен вот этот
Код: plaintext
T_Get_CMI_With_Losses
):

Код: plaintext
1.
2.
3.
4.
5.
6.
CREATE OR REPLACE TYPE T_Get_CMI_With_Losses AS OBJECT(
      ADDRESS VARCHAR2( 2000 ), 
      AKT number, 
      REAKT number, 
      LOSSES number, 
      ValLoss number
     )

куда я добавила параметр ValLoss .
После этого при попытке откомпилить тип, такая ошибка:

ORA-02303 cannot drop or replace a type with type or table dependents.

Такая же ошибка была, когда названия типов были в кавычках.
...
Рейтинг: 0 / 0
Создание типа
    #36991046
alex3561
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
natnimСпасибо за помощь.
1. Удалила кавычки - откомпилилось успешно, функция заработала!
2. Потребовалось в тип
Код: plaintext
T_Get_CMI_With_Losses 
добавить еще один параметр
(тип я привела здесь по ошибке, прошу прощения, нужен вот этот
Код: plaintext
T_Get_CMI_With_Losses
):

Код: plaintext
1.
2.
3.
4.
5.
6.
CREATE OR REPLACE TYPE T_Get_CMI_With_Losses AS OBJECT(
      ADDRESS VARCHAR2( 2000 ), 
      AKT number, 
      REAKT number, 
      LOSSES number, 
      ValLoss number
     )

куда я добавила параметр ValLoss .
После этого при попытке откомпилить тип, такая ошибка:

ORA-02303 cannot drop or replace a type with type or table dependents.

Такая же ошибка была, когда названия типов были в кавычках.

Вам надо удалить тип L_Get_CMI_With_Losses перед изменением T_Get_CMI_With_Losses.
...
Рейтинг: 0 / 0
Создание типа
    #36991059
natnim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добавлю еще.
Теперь у меня в базе два типа:
T_Get_CMI_With_Losses и T_GET_CMI_WITH_LOSSES.

Удалить не получается, пробовала изменить, как мне необходимо и компилить, возникает указанная выше ошибка.
Под пользователем sys, измененный T_Get_CMI_With_Losses удалось успешно откомпилить, но в базе под моим пользователем этот тип остался неизмененным.

В чем может быть дело?
Спасибо.
...
Рейтинг: 0 / 0
Создание типа
    #36991112
natnim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alex3561, спасибо!
Работает.
...
Рейтинг: 0 / 0
Создание типа
    #36991131
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
CREATE [OR REPLACE] TYPE [ schema. ] type_name [  FORCE  ]
  [ OID 'object_identifier' ]

  [ object_type 
  | | { IS | AS } { varray_type_def | nested_table_type_def }
  ];
...
Рейтинг: 0 / 0
Создание типа
    #36991182
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
natnimвозникает указанная выше ошибка.
В чем может быть дело?
Вы по-английски не читаете?
oerr$ oerr ora 2303
02303, 00000, "cannot drop or replace a type with type or table dependents"
// *Cause: An attempt was made to drop or replace a type that has dependents.
// There could be a substitutable column of a supertype of the type
// being dropped.
// *Action: Drop all type(s) and table(s) >>>depending on the type<<<, then retry
// the operation using the VALIDATE option, >>>or use the FORCE option<<<.


что означает: "нельзя грохать тип, пока существуют зависимые от него объекты".
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Создание типа
    #39268130
alcon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DROP TYPE <NAME> FORCE ;
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Создание типа
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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