powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Не вставляет дробное значение.
25 сообщений из 44, страница 1 из 2
Не вставляет дробное значение.
    #39461960
gera3323
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть вот такая процедура
Код: plsql
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.
CREATE OR REPLACE PROCEDURE SALES.GET_WEIGHT_ETRAN(GROUP_ID IN NUMBER)
AS PRAGMA AUTONOMOUS_TRANSACTION;

  carTonnage    NUMBER DEFAULT 0;
  carWeightDep  NUMBER DEFAULT 0;
   
BEGIN 
   
 FOR i IN (SELECT vr.ID, vr.VNUMBER FROM SALES.VAGON_REGISTR vr WHERE vr.ID_GDN = GROUP_ID)
 LOOP 
   
   IF(i.VNUMBER is not NULL)THEN 
     
     SELECT t.carWeightDep / 10, t.carTonnage INTO carWeightDep, carTonnage FROM TABLE(SALES.RM_ETRAN.getNSICar(i.VNUMBER)) t;

     INSERT INTO SALES.SPR_TEL(ID, TEL) VALUES(carWeightDep, carTonnage);
     COMMIT;
     
    /*
     UPDATE SALES.VAGON_REGISTR vr SET vr.V_CAPACITY = carTonnage, vr.TARA_TN = (carWeightDep / 10) WHERE vr.ID = i.ID;  
     COMMIT;
    */
   END IF;
   
 END LOOP;   

END;
/



При вызове ее из IDE вот так
Код: plsql
1.
2.
3.
BEGIN
  SALES.GET_WEIGHT_ETRAN(81042);
END;



Поля carWeightDep, carTonnage вставляются полностью.

При вызове из Apex, таким же способом, поле carTonnage всегда равно NULL
...
Рейтинг: 0 / 0
Не вставляет дробное значение.
    #39461962
gera3323
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gera3323,

при вывозе функции из Delphi OraQuery1 данные также приходят полностью и вставляются нормально
...
Рейтинг: 0 / 0
Не вставляет дробное значение.
    #39462009
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gera3323,

Код функции SALES.RM_ETRAN.getNSICar и возвращаемые ей типы данных предполагается узнать в отделе телепатии
...
Рейтинг: 0 / 0
Не вставляет дробное значение.
    #39462021
gera3323
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
env,

типы NUMBER, там идет XML запрос в систему ЭТРАН. Пакет RM_ETRAN поставляется программистами ЭТРАНа
...
Рейтинг: 0 / 0
Не вставляет дробное значение.
    #39462119
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gera3323,

Что это такое, опять же узнавайте в отделе телепатии.
Показывай свой xml-запрос.
...
Рейтинг: 0 / 0
Не вставляет дробное значение.
    #39462128
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gera3323,

Оно?
этранДополнительная информация

Конкурс «Лучший пользователь ЭТРАН»
Конкурс частушек (2012 год)
...
Рейтинг: 0 / 0
Не вставляет дробное значение.
    #39462135
gera3323
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
env,

XML написан не мной. И функция работает отлично. Она возвращает данные все и как нужно
...
Рейтинг: 0 / 0
Не вставляет дробное значение.
    #39462151
Фотография dbms_photoshop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gera3323Есть вот такая процедура
Код: plsql
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.
CREATE OR REPLACE PROCEDURE SALES.GET_WEIGHT_ETRAN(GROUP_ID IN NUMBER)
AS PRAGMA AUTONOMOUS_TRANSACTION;

  carTonnage    NUMBER DEFAULT 0;
  carWeightDep  NUMBER DEFAULT 0;
   
BEGIN 
   
 FOR i IN (SELECT vr.ID, vr.VNUMBER FROM SALES.VAGON_REGISTR vr WHERE vr.ID_GDN = GROUP_ID)
 LOOP 
   
   IF(i.VNUMBER is not NULL)THEN 
     
     SELECT t.carWeightDep / 10, t.carTonnage INTO carWeightDep, carTonnage FROM TABLE(SALES.RM_ETRAN.getNSICar(i.VNUMBER)) t;

     INSERT INTO SALES.SPR_TEL(ID, TEL) VALUES(carWeightDep, carTonnage);
     COMMIT;
     
    /*
     UPDATE SALES.VAGON_REGISTR vr SET vr.V_CAPACITY = carTonnage, vr.TARA_TN = (carWeightDep / 10) WHERE vr.ID = i.ID;  
     COMMIT;
    */
   END IF;
   
 END LOOP;   

END;
/



При вызове ее из IDE вот так
Код: plsql
1.
2.
3.
BEGIN
  SALES.GET_WEIGHT_ETRAN(81042);
END;



Поля carWeightDep, carTonnage вставляются полностью.

При вызове из Apex, таким же способом, поле carTonnage всегда равно NULLЭто прелестно вызывать табличную функцию для вставки результата в два скаляра.
Комит после каждой строки тоже не свидетельство большого ума.

Ну и адекватный разработчик здесь вообще обошелся бы без циклов.
Про inset ... select слышал?
...
Рейтинг: 0 / 0
Не вставляет дробное значение.
    #39462155
gera3323
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dbms_photoshop,

ну давай сделай без циклов.

функция возвращает одну запись по номеру i.VNUMBER. Так же она возвращает скалярные данные.

SALES.RM_ETRAN.getNSICar(i.VNUMBER)
...
Рейтинг: 0 / 0
Не вставляет дробное значение.
    #39462156
gera3323
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dbms_photoshop,

функция SALES.RM_ETRAN.getNSICar не может вернуть больше одной записи
...
Рейтинг: 0 / 0
Не вставляет дробное значение.
    #39462161
gera3323
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dbms_photoshop,

Код: plsql
1.
2.
3.
4.
5.
6.
7.
TYPE NOM_WAG_RECORD IS RECORD
(
   CARTONNAGE NUMBER,
   CARWEIGHTDEP NUMBER,
);

TYPE NOM_WAG_TABLE IS TABLE OF NOM_WAG_RECORD;
...
Рейтинг: 0 / 0
Не вставляет дробное значение.
    #39462178
Никанор Кузьмич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так проблема только с апексом что ли?
gera3323При вызове из Apex, таким же способом, поле carTonnage всегда равно NULLТогда рассказывайте, что в апексе делаете. Вангую, что виновата опечатка в названии итема.
...
Рейтинг: 0 / 0
Не вставляет дробное значение.
    #39462182
gera3323
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Никанор Кузьмич,

в Apex создана кнопка и PL/SQL anonymous block.
По нажатию кнопки вызывается

DECLARE

BEGIN
SALES.GET_WEIGHT_ETRAN(:P45_ID_GDN);
END;
...
Рейтинг: 0 / 0
Не вставляет дробное значение.
    #39462183
Фотография dbms_photoshop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gera3323ну давай сделай без цикловКогда у тебя что-то не получается и ты просишь помощи - лучше делать это в несколько иной форме, чтоб ее получить.
gera3323функция SALES.RM_ETRAN.getNSICar не может вернуть больше одной записиТогда смысл делать коллецию как тип результата?
...
Рейтинг: 0 / 0
Не вставляет дробное значение.
    #39462192
gera3323
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dbms_photoshop,

программисты этрана так сделали.
...
Рейтинг: 0 / 0
Не вставляет дробное значение.
    #39462195
gera3323
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Никанор Кузьмич,

фишка в том что не вставляется только carTonnage. Из Delphi вызываешь эту функцию все нормально.
...
Рейтинг: 0 / 0
Не вставляет дробное значение.
    #39462209
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gera3323,

И какого же типа параметр при вызове в апексе?
...
Рейтинг: 0 / 0
Не вставляет дробное значение.
    #39462211
gera3323
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
env,

без типовый.
...
Рейтинг: 0 / 0
Не вставляет дробное значение.
    #39462221
Фотография dbms_photoshop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gera3323,

Код: plsql
1.
2.
3.
4.
5.
insert into sales.spr_tel(id, tel)
select t.carweightdep / 10,
       t.cartonnage
  from sales.vagon_registr vr, table(sales.rm_etran.getnsicar(vr.vnumber)) t
 where vr.id_gdn = :group_id and vr.vnumber is not null

Не самый сложный запрос, не так ли?
...
Рейтинг: 0 / 0
Не вставляет дробное значение.
    #39462222
кодерасты
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Никанор Кузьмич Вангую, что виновата опечатка в названии итема.более вероятно when others then null; после нлс-зависимости или нетворк_аклъ.
...
Рейтинг: 0 / 0
Не вставляет дробное значение.
    #39462228
gera3323
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dbms_photoshop,
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
BEGIN

   
 FOR i IN (SELECT vr.ID, vr.VNUMBER FROM SALES.VAGON_REGISTR vr WHERE vr.ID_GDN = GROUP_ID)
 LOOP 
   
   IF(i.VNUMBER is not NULL)THEN 
     
     SELECT t.carWeightDep, t.carTonnage INTO carWeightDep, carTonnage FROM TABLE(SALES.RM_ETRAN.getNSICar(i.VNUMBER)) t;
     
     UPDATE SALES.VAGON_REGISTR vr SET vr.V_CAPACITY = carTonnage, vr.TARA_TN = (carWeightDep / 10) WHERE vr.ID = i.ID;    
    
   END IF;
   
 END LOOP;   

 COMMIT;

END;



sales.spr_tel - это была таблица просто для вставки значений. она не используется)
...
Рейтинг: 0 / 0
Не вставляет дробное значение.
    #39462231
gera3323
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кодерасты,

функция SALES.RM_ETRAN.getNSICar NULL не возвращает
...
Рейтинг: 0 / 0
Не вставляет дробное значение.
    #39462233
gera3323
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gera3323,

триггеров SALES.VAGON_REGISTR на UPDATE нет
...
Рейтинг: 0 / 0
Не вставляет дробное значение.
    #39462251
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gera3323env,

без типовый.

Т.е. строковый со всеми вытекающими?
...
Рейтинг: 0 / 0
Не вставляет дробное значение.
    #39462255
gera3323
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
env,

да. там в Validations указывается, что параметр только числа может содержать, если в нем будет хоть что-то отличное от числа то будет сообщение об ошибке.
...
Рейтинг: 0 / 0
25 сообщений из 44, страница 1 из 2
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Не вставляет дробное значение.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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