Прежде всего большое спасибо всем специалистам PERL на этом замечательном веб-сайте; Я так многому научился.PERL DBI: Вставка из .pl в Oracle DB Функция to_date в тестовую переменную
У меня есть небольшая проблема «перевода»;
мой .pl скрипт выполняет эти задачи последовательно:
- Почитаю .txt файл (в реальной жизни журнала)
- регулярное выражение чистит и хранить в памяти переменных некоторую информацию
- при чтении строки по строке он вставляет в таблицу Oracle
- Выход и отключение при завершении изящно.
Таблица имеет 8 столбцов и один из этой даты магазина и времени события и формат, который я объявлен в SQL является:
DATETIME_EVENT VARCHAR2(255 BYTE) DEFAULT NULL NOT NULL
вы можете ясно видеть, куда я иду в немного ....
так указать 3 выше выполнить этот блок:
my $sth = $dbh->prepare('INSERT INTO myTable(TIME_ISSUE,col2,col3,col4,col5,col6,col7,col8) VALUES (?, ?, ?, ?, ?, ?, ?, ?)');
Пример вставляемых: 2014-09-19 00: 03: 58,562
Все гладко и хорошо, однако я буду выполнять множество запросов позже; но мне придется переводить с помощью функции to_date в SQL, чтобы интерпретировать столбец TIME_ISSUE в качестве типа времени tat.
AS:
select to_date(SUBSTR(TIME_ISSUE,0,19) ,'YYYY-MM-DD HH24:MI:SS') from myTable;
ВЫВОД: 19/09/2014 23:59:56
Если я создаю table.column как тип даты и времени, как я могу писать блок Perl вставки выше для того, вставить txt в тип datetime?
Я пытался, но не работает на всех:
my $sth = $dbh->prepare('INSERT INTO REQUEST (TO_DATE(SUBSTR(DATETIME_EVENT ,0,19), 'YYYY-MM-DD HH24:MI:SS'),LOG_LEVEL,LOGONID, CLIENTID, USERID,IPADDRESS,DURATION,CLASSMETHOD) VALUES (?, ?, ?, ?, ?, ?, ?, ?)')
P.S.
можно предположить, что, если я запустить Perl выше я ранее создал эту колонку, как это:
TIME_ISSUE DATE DEFAULT NOT NULL
Привет, Роб, как это применяется в моем случае, похоже, что я должен объявить первый тип date_time объявления в моем pl scrpt? – HashGuy81
На самом деле, этот модуль может быть лучше http://search.cpan.org/~cfaerber/DateTime-Format-DBI-0.041/lib/DateTime/Format/DBI.pm Красивый фрагмент кода на самом верху. –