Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Не вставляет дробное значение. / 25 сообщений из 44, страница 1 из 2
30.05.2017, 07:20
    #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
30.05.2017, 07:23
    #39461962
gera3323
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не вставляет дробное значение.
gera3323,

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

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

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

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

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

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

XML написан не мной. И функция работает отлично. Она возвращает данные все и как нужно
...
Рейтинг: 0 / 0
30.05.2017, 12:10
    #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
30.05.2017, 12:15
    #39462155
gera3323
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не вставляет дробное значение.
dbms_photoshop,

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

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

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

функция SALES.RM_ETRAN.getNSICar не может вернуть больше одной записи
...
Рейтинг: 0 / 0
30.05.2017, 12:19
    #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
30.05.2017, 12:30
    #39462178
Никанор Кузьмич
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не вставляет дробное значение.
Так проблема только с апексом что ли?
gera3323При вызове из Apex, таким же способом, поле carTonnage всегда равно NULLТогда рассказывайте, что в апексе делаете. Вангую, что виновата опечатка в названии итема.
...
Рейтинг: 0 / 0
30.05.2017, 12:33
    #39462182
gera3323
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не вставляет дробное значение.
Никанор Кузьмич,

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

DECLARE

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

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

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

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

без типовый.
...
Рейтинг: 0 / 0
30.05.2017, 12:56
    #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
30.05.2017, 12:56
    #39462222
кодерасты
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не вставляет дробное значение.
Никанор Кузьмич Вангую, что виновата опечатка в названии итема.более вероятно when others then null; после нлс-зависимости или нетворк_аклъ.
...
Рейтинг: 0 / 0
30.05.2017, 12:59
    #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
30.05.2017, 13:00
    #39462231
gera3323
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не вставляет дробное значение.
кодерасты,

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

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

без типовый.

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

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


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