powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Как можно из входящего параметра с типам VARCHAR получить дату с временем
28 сообщений из 28, показаны все 2 страниц
Как можно из входящего параметра с типам VARCHAR получить дату с временем
    #39771180
amireyev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый вечер!
Входящий параметр может быть приходит разными типами. Из за этого сделал тип VARCHAR (p_param IN VARCHAR2).
Но если приходит параметр DATE, то дата конвертируется без времени.
Как можно получить входящий параметр с временем.


CREATE OR REPLACE PROCEDURE TST (p_param IN VARCHAR2)
AS
BEGIN
DBMS_OUTPUT.PUT_LINE (p_param);
END;


BEGIN
TST (SYSDATE);
END;

результат
08-FEB-19

Нужен результат 08-FEB-19 18:44:00
...
Рейтинг: 0 / 0
Как можно из входящего параметра с типам VARCHAR получить дату с временем
    #39771188
123йй
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
amireyev,

alter SESSION set NLS_DATE_FORMAT
...
Рейтинг: 0 / 0
Как можно из входящего параметра с типам VARCHAR получить дату с временем
    #39771195
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
amireyev,

перегрузка

....
stax
...
Рейтинг: 0 / 0
Как можно из входящего параметра с типам VARCHAR получить дату с временем
    #39771204
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
StaxперегрузкаЭто named unit
...
Рейтинг: 0 / 0
Как можно из входящего параметра с типам VARCHAR получить дату с временем
    #39771206
amireyev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
123йй,

пробовал

execute immediate 'alter session set nls_date_format = ''dd.mm.yyyy hh24:mi:ss''';

не помогло
...
Рейтинг: 0 / 0
Как можно из входящего параметра с типам VARCHAR получить дату с временем
    #39771207
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
amireyevНо если приходит параметр DATE, то дата конвертируется без времени.
[/b]

преобразовивать явно, Вы ж знаете что пришла дата
BEGIN
TST (to_char(SYSDATE,'dd-MON-yy hh24:mi:ss','NLS_DATE_LANGUAGE=AMERICAN'));
END;

....
stax
...
Рейтинг: 0 / 0
Как можно из входящего параметра с типам VARCHAR получить дату с временем
    #39771209
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ElicStaxперегрузкаЭто named unit
я видел, придется прятать в пакет

....
stax
...
Рейтинг: 0 / 0
Как можно из входящего параметра с типам VARCHAR получить дату с временем
    #39771210
amireyev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Stax,

к сожалению не знаю, внутри процедуры проверяю тип.
...
Рейтинг: 0 / 0
Как можно из входящего параметра с типам VARCHAR получить дату с временем
    #39771211
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Staxпреобразовивать явно, Вы ж знаете что пришла датаПоздно пить боржоми.
...
Рейтинг: 0 / 0
Как можно из входящего параметра с типам VARCHAR получить дату с временем
    #39771212
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
amireyev
execute immediate 'alter session set nls_date_format = ''dd. mm.yyyy hh24:mi:ss''';


автор08- FEB-19 18:44:00


....
stax
...
Рейтинг: 0 / 0
Как можно из входящего параметра с типам VARCHAR получить дату с временем
    #39771222
amireyev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Stax,

CREATE OR REPLACE PROCEDURE TST (p_Date IN VARCHAR2)
AS
BEGIN

execute immediate 'alter session set nls_date_format = ''dd.mm.yyyy hh24:mi:ss''';
DBMS_OUTPUT.PUT_LINE (p_Date);
END;


BEGIN
TST (SYSDATE);
END;

Результат 08-FEB-19

Если запускаю

BEGIN
execute immediate 'alter session set nls_date_format = ''dd.mm.yyyy hh24:mi:ss''';
TST (SYSDATE);
END;

то результат правильный
08.02.2019 19:16:10.

Вызов процедуры делается в другой системе. Там не смогу зашить
execute immediate 'alter session set nls_date_format = ''dd.mm.yyyy hh24:mi:ss''';

Есть еще варианты?
...
Рейтинг: 0 / 0
Как можно из входящего параметра с типам VARCHAR получить дату с временем
    #39771223
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
amireyevЕсть еще варианты?Не изобретать ходуль на колесиках.
...
Рейтинг: 0 / 0
Как можно из входящего параметра с типам VARCHAR получить дату с временем
    #39771225
MazoHist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
amireyevДобрый вечер!
Входящий параметр может быть приходит разными типами. Из за этого сделал тип VARCHAR (p_param IN VARCHAR2).

Вызывающие что передают в итоге? ANYDATA
...
Рейтинг: 0 / 0
Как можно из входящего параметра с типам VARCHAR получить дату с временем
    #39771226
amireyev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
-2-,

)))))))
...
Рейтинг: 0 / 0
Как можно из входящего параметра с типам VARCHAR получить дату с временем
    #39771230
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
amireyevЕсть еще варианты?
создать процедуру в пакете можете?

....
stax
...
Рейтинг: 0 / 0
Как можно из входящего параметра с типам VARCHAR получить дату с временем
    #39771231
alex-ls
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
так почему явно нельзя сделать TO_CHAR?
...
Рейтинг: 0 / 0
Как можно из входящего параметра с типам VARCHAR получить дату с временем
    #39771233
alex-ls
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно сделать 2 процедуры для даты и для строки
...
Рейтинг: 0 / 0
Как можно из входящего параметра с типам VARCHAR получить дату с временем
    #39771241
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
StaxElicпропущено...
Это named unitя видел, придется прятать в пакетНе обязательно
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
SQL> alter session set nls_date_format='"*"';

Session altered.

SQL> select sysdate from dual;

S
-
*

SQL> select test1(sysdate) x from dual;

X
--------------------------------------------------------------------------------
date is 2019-02-08 16:32:12

SQL> select test1('abc') x from dual;

X
--------------------------------------------------------------------------------
str is "abc"
...
Рейтинг: 0 / 0
Как можно из входящего параметра с типам VARCHAR получить дату с временем
    #39771247
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-2-SQL> alter session set nls_date_format='"*"';

я так понимаю amireyev не может выдать alter session до вызова TST

если б можно было б то 21804523

зы
просто интересно если * и алтер можно,
то как передать не sysdate?

....
stax
...
Рейтинг: 0 / 0
Как можно из входящего параметра с типам VARCHAR получить дату с временем
    #39771249
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
amireyevВходящий параметр может быть приходит разными типами. Из за этого сделал тип VARCHAR (p_param IN VARCHAR2).

Используйте параметры подходящих типов.
Не полагайтесь на неявное преобразование.
...
Рейтинг: 0 / 0
Как можно из входящего параметра с типам VARCHAR получить дату с временем
    #39771252
amireyev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Stax,

Процедура на нашей стороне, вызов делает другая система, и там не всегда приходит дата.
Качества данных хромает.
...
Рейтинг: 0 / 0
Как можно из входящего параметра с типам VARCHAR получить дату с временем
    #39771255
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Staxпросто интересно если * и алтер можно,
то как передать не sysdate?Скоропалительные выводы о роли *
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
SQL> select test1('*') x from dual;

X
--------------------------------------------------------------------------------
str is "*"

SQL> select test1(sysdate-1) from dual;

TEST1(SYSDATE-1)
--------------------------------------------------------------------------------
date is 2019-02-07 16:43:13
...
Рейтинг: 0 / 0
Как можно из входящего параметра с типам VARCHAR получить дату с временем
    #39771267
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
amireyevтам не всегда приходит дата.
Вот и используйте те типы, которые приходят.
Не надо пытаться изобрести велосипед на varchar2 - он изначально нерабочий
...
Рейтинг: 0 / 0
Как можно из входящего параметра с типам VARCHAR получить дату с временем
    #39771271
amireyev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
andrey_anonymous,

ок, спасибо!
...
Рейтинг: 0 / 0
Как можно из входящего параметра с типам VARCHAR получить дату с временем
    #39771350
Да ну
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-2-,
-2-Staxпропущено...
я видел, придется прятать в пакетНе обязательно
Код: plsql
1.
2.
3.
4.
5.
SQL> ...
SQL> select test1(sysdate) x from dual;
SQL> ...
SQL> select test1('abc') x from dual;
SQL> ...


Заинтриговал
...
Рейтинг: 0 / 0
Как можно из входящего параметра с типам VARCHAR получить дату с временем
    #39771466
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Как можно из входящего параметра с типам VARCHAR получить дату с временем
    #39771639
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да нуЗаинтриговалПодсказка:
Код: plsql
1.
2.
3.
SQL> desc test1
ERROR:
ORA-24332: invalid object type
...
Рейтинг: 0 / 0
Как можно из входящего параметра с типам VARCHAR получить дату с временем
    #39772166
Да ну
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-2-Да нуЗаинтриговалПодсказка:
Код: plsql
1.
2.
3.
SQL> desc test1
ERROR:
ORA-24332: invalid object type


Ясно, спасибо.
...
Рейтинг: 0 / 0
28 сообщений из 28, показаны все 2 страниц
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Как можно из входящего параметра с типам VARCHAR получить дату с временем
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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