#sql #oracle #oracleforms
#sql #Oracle #oracleforms
Вопрос:
Привет, дорогой, я хочу указать время в таблице, в T1
которой есть столбец, C1,C2,C3
я хочу указать дату в C1, дата должна быть введена с заданной даты date1
между date2
и c2 для повествования, а C3 должен указать время путем перетасовки в C3 из заданного диапазона, что означает, что я хочу добавить время от начала 7:45
до конца 8:00
и хочу указать месяцсистема Jan-2021
может добавить date
в C1 за месяц и добавить заданное повествование в c2, кроме воскресенья, и добавить время из заданного диапазона путем перетасовки в oracle forms, пожалуйста
Комментарии:
1. Знаки препинания существуют не просто так; используйте их. Я прочитал ваш вопрос несколько раз и понятия не имею, что вы говорите. Это должно что-то делать с формами Oracle, датами и временем, но я заблудился в столбцах «C» и «описаниях». Надеюсь, кто-то еще поможет.
2. Я хочу, чтобы время вставляло время в столбец из диапазона, например, с 7:45 до 8:00, я могу использовать level, но он будет отправляться одновременно, мне нужно, чтобы он отправлял его случайным образом, например, сначала отправлял 7:45, затем 7: 47, затем 7:49, затем 7:46
Ответ №1:
Если вы хотите создать случайное время, используйте DBMS_RANDOM
package . Например:
Изменение сеанса, чтобы вы знали, какие result
значения представляют:
SQL> alter session set nls_date_format = 'dd.mm.yyyy hh24:mi';
Session altered.
Запрос:
SQL> with test (start_date) as
2 (select to_date('01.01.2021 07:45', 'dd.mm.yyyy hh24:mi') from dual
3 )
4 select start_date round(dbms_random.value(1, 15)) / (24 * 60) result
5 from test
6 connect by level <= 15;
RESULT
----------------
01.01.2021 07:49
01.01.2021 07:54
01.01.2021 07:59
01.01.2021 07:58
01.01.2021 07:56
01.01.2021 07:54
01.01.2021 07:57
01.01.2021 07:52
01.01.2021 07:54
01.01.2021 07:52
01.01.2021 07:50
01.01.2021 07:46
01.01.2021 07:53
01.01.2021 07:48
01.01.2021 07:49
15 rows selected.
SQL>
Вот как.
Поскольку я все еще не понимаю, что вы на самом деле делаете, я надеюсь, что этого достаточно для вас, чтобы двигаться дальше.
Комментарии:
1. определенно, я хочу, чтобы это u было точным, но я получаю эту ошибку SQL * Плюс состояние внутренней ошибки 2091, контекст 0: 0: 0 Небезопасно для продолжения
2. Похоже, вы используете старый клиент Oracle; возможно, вам следует обновить, если это возможно. Какая у вас версия базы данных и какую версию клиента вы используете для подключения к этой базе данных?
3. Oracle Database 11g Enterprise Edition Выпуск 11.2.0.4.0 — 64-разрядный производственный PL / SQL Выпуск 11.2.0.4.0 — Производственное ЯДРО 11.2.0.4.0 Производственные TNS для Linux: версия 11.2.0.4.0 — Производственный NLSRTL Версия 11.2.0.4.0 — Производственный
4. Верно; довольно старый . Я имею в виду, что 11g старый, но 8i древний . Вам действительно нужно обновиться. Потому что, как вы можете видеть в моем ответе, этот код работает правильно. Я использовал 11g.
5. Вероятно, вам следует перебирать все записи в блоке. Завершите цикл, когда дойдете до последней записи; см. Интерактивную справку по формам и выполните поиск
:system
переменных (это:system.last_record
может оказаться полезным).