Главная»Браузеры»ORA-01861: literal does not match format string |; Oracle Community
ORA-01861: literal does not match format string |; Oracle Community
need immediate help.
Hi.i am trying to insert a particular col a_1 from table a to col b_1 of table b.
I am currently using oracle 10g.
The length and datatype of col a_1 is varchar2(5)
The length and datatype of col b_1 is date.
When i am trying to insert
insert into b(b_1) values(to_date(a_1,’dd-mon’)
i get an error ORA-01861: literal does not match format string 01861. 00000 — «literal does not match format string» *Cause: Literals in the input must be the same length as literals in the format string (with the exception of leading whitespace). If the «FX» modifier has been toggled on, the literal must match exactly, with no extra whitespace. *Action: Correct the format string to match the literal.
How do i go about it.
60983 Просмотров
Метки: нет (добавить) 10g
1. Re: ORA-01861: literal does not match format string
Can you give us some sample values from column a_1.
With the present info, you have missed the year format in to_date convertion.
use Regards, Prazy
Мне нравится Показать отметки «Мне нравится» (0) (0)
Действия
2. Re: ORA-01861: literal does not match format string
Мне нравится Показать отметки «Мне нравится» (0) (0)
Действия
3. Re: ORA-01861: literal does not match format string
try and identify the columns, which have a space or are of a greater length or do not have a dash then either correct the data, or modify your sql so that you accomodate multiple formats!
Мне нравится Показать отметки «Мне нравится» (0) (0)
Действия
4. Re: ORA-01861: literal does not match format string
it contains data
Мне нравится Показать отметки «Мне нравится» (0) (0)
Действия
5. Re: ORA-01861: literal does not match format string
user8731258 wrote: it contains data
Мне нравится Показать отметки «Мне нравится» (0) (0)
Действия
6. Re: ORA-01861: literal does not match format string
user8731258 wrote: it contains data
Not always, apparantly. If even one row in the table has text that doesn’t match the format, you’ll get that error. Correct (or remove) all the bad data.
To find the rows with bad data, do something like Bluefrog suggested, or this: using the following function: If your data is a 5-character string, such as ’25oct’, why are you trying to convert it using a 6-character format, ‘dd-mon’? If the 2nd argument to TO_DATE says there will be a hyphen (‘-‘), but there actually isn’t one, that’s does not raise an error, so I left the hyphen in the 2nd argument, just in case you do want to have strings like ‘3-Mar’, but you should be consistent.
Мне нравится Показать отметки «Мне нравится» (0) (0)
Действия
7. Re: ORA-01861: literal does not match format string
Just use to_date(a_1,’ddmon’) provied entire data in the column with the same format like 25oct
Непонятная обработка типа данных
Еще раз здравствуйте.
Ситуация следующая. Выполняю SQL запрос:
То данные 2008го года отбираются.
Что такое с Oracle творится? или скорее я что-то не так творю?
04.07.2011, 15:35
Обработка данных типа запись (комбинированный тип данных). Вывести ФИО и отметки по физике студентов, имеющих средний балл, больше 4,5. Помоги.
Обработка данных типа запись Составить программу для решения задачи. Написать программу для ввода списка студентов группы из 25.
7. Обработка данных типа множество Составить программу для решения задачи. Определить, какие из чисел, введенных с клавиатуры не.
Обработка данных перечисляемого типа Помогите ,пожалуйста. Требуется: разработать и отладить программу, в которой описана рассмотренная.
04.07.2011, 15:43
2
17.08.2011, 10:57 [ТС]
3
Доброго утра! Поднимаю тему, так как проявились нюансы)
В базе дата хранится в основном в виде dd.mm.yyyy тогда пишу так
Если же дата содержит время 02.02.2011 15:20 то мое условие отваливается, а мне нужно чтоб срабатывало.. Как лучше это сделать? Получать значение преобразовать к строке и если больше 10 символов то обрезать хвост или как?
Добавлено через 28 минут Вот если на входе у меня дата без времени 02.02.2011 то могу писать так:
у меня не работает! вот почему второй вариант не сработал? в базе хранится 02.02.2011 15:23
17.08.2011, 12:17
4
Oracle 11 SQL
17.08.2011, 15:17 [ТС]
5
17.08.2011, 15:51
6
18.08.2011, 13:37 [ТС]
7
18.08.2011, 14:02
8
Oracle 11 SQL
18.08.2011, 15:53 [ТС]
9
у меня ругается) мне нужно чтобы моя гуиподелка работала)
тип поля DATE а содержимое показал уже трижды)
18.08.2011, 16:07
10
Oracle 11 SQL
18.08.2011, 16:12 [ТС]
11
18.08.2011, 16:20
12
Oracle 11 SQL
18.08.2011, 16:37
13
NETClient, хорошая идея. Я добавил в твой запрос to_char(sysdate) и поэкспериментировал с добавлением форматов в функции to_date и to_char. Результат такой: to_char показывает адекватные данные, а вот to_date с форматом не дружит и показывает пустое значение. Видимо, Oracle не предусматривает прямое преобразование из даты в дату с использованием формата, хотя просто to_date дает, собственно говоря, дату (день, месяц и год).
СyberSpec, надо, видимо, для твоей задачи брать либо to_char с ограниченными возможностями сравнения, либо to_date(to_char(с форматом)).
ORA_EXCEL
API Oracle PL/SQL to Excel XSLX Самый мощный PL/SQL Excel API в мире.
Код ошибки базы данных Oracle ORA-01861 Описание
База данных:10g Выпуск 1 Код ошибки: ORA-01861 Описание: литерал не соответствует формату строки Причина: Литералы во входных данных должны иметь ту же длину, что и литералы в строке формата (за исключением начальных пробелов). Если модификатор «FX» был включен, литерал должен точно совпадать, без лишних пробелов. Действие: Исправьте строку формата в соответствии с литералом.
База данных:10g Выпуск 1 Код ошибки: ORA-01861 Описание: literal does not match format string Причина: Literals in the input must be the same length as literals in the format string (with the exception of leading whitespace). If the «FX» modifier has been toggled on, the literal must match exactly, with no extra whitespace. Действие: Correct the format string to match the literal.
База данных:10g Выпуск 2 Код ошибки: ORA-01861 Описание: литерал не соответствует формату строки Причина: Литералы во входных данных должны иметь ту же длину, что и литералы в строке формата (за исключением начальных пробелов). Если модификатор «FX» был включен, литерал должен точно совпадать, без лишних пробелов. Действие: Исправьте строку формата в соответствии с литералом.
База данных:11g Выпуск 1 Код ошибки: ORA-01861 Описание: литерал не соответствует формату строки Причина: Литералы во входных данных должны иметь ту же длину, что и литералы в строке формата (за исключением начальных пробелов). Если модификатор «FX» был включен, литерал должен точно совпадать, без лишних пробелов. Действие: Исправьте строку формата в соответствии с литералом.
База данных:11g Выпуск 2 Код ошибки: ORA-01861 Описание: литерал не соответствует формату строки Причина: Литералы во входных данных должны иметь ту же длину, что и литералы в строке формата (за исключением начальных пробелов). Если модификатор «FX» был включен, литерал должен точно совпадать, без лишних пробелов. Действие: Исправьте строку формата в соответствии с литералом.
База данных:12c Выпуск 1 Код ошибки: ORA-01861 Описание: литерал не соответствует формату строки Причина: Литералы во входных данных должны иметь ту же длину, что и литералы в строке формата (за исключением начальных пробелов). Если модификатор «FX» был включен, литерал должен точно совпадать, без лишних пробелов. Действие: Исправьте строку формата в соответствии с литералом.
База данных:12c Выпуск 2 Код ошибки: ORA-01861 Описание: литерал не соответствует формату строки Причина: Литералы во входных данных должны иметь ту же длину, что и литералы в строке формата (за исключением начальных пробелов). Если модификатор «FX» был включен, литерал должен точно совпадать, без лишних пробелов. Действие: Исправьте строку формата в соответствии с литералом.
База данных:18c Выпуск 1 Код ошибки: ORA-01861 Описание: литерал не соответствует формату строки Причина: Литералы во входных данных должны иметь ту же длину, что и литералы в строке формата (за исключением начальных пробелов). Если модификатор «FX» был включен, литерал должен точно совпадать, без лишних пробелов. Действие: Исправьте строку формата в соответствии с литералом.
База данных:18c Выпуск 1 Код ошибки: ORA-01861 Описание: литерал не соответствует формату строки Причина: Литералы во входных данных должны иметь ту же длину, что и литералы в строке формата (за исключением начальных пробелов). Если модификатор «FX» был включен, литерал должен точно совпадать, без лишних пробелов. Действие: Исправьте строку формата в соответствии с литералом.
База данных:19c Выпуск 1 Код ошибки: ORA-01861 Описание: литерал не соответствует формату строки Причина: Литералы во входных данных должны иметь ту же длину, что и литералы в строке формата (за исключением начальных пробелов). Если модификатор «FX» был включен, литерал должен точно совпадать, без лишних пробелов. Действие: Исправьте строку формата в соответствии с литералом.
База данных:19c Выпуск 1 Код ошибки: ORA-01861 Описание: литерал не соответствует формату строки Причина: Литералы во входных данных должны иметь ту же длину, что и литералы в строке формата (за исключением начальных пробелов). Если модификатор «FX» был включен, литерал должен точно совпадать, без лишних пробелов. Действие: Исправьте строку формата в соответствии с литералом.
QlikView Scripting
Discussion Board for collaboration on QlikView Scripting.
Qlik Community
:
Qlik Data Analytics Forums
:
QlikView
:
QlikView Scripting
:
ORA-01861: literal does not match format string
Subscribe to RSS Feed
Mark Topic as New
Mark Topic as Read
Float this Topic for Current User
Bookmark
Subscribe
Mute
Printer Friendly Page
All forum topics
Previous Topic
Next Topic
Mark as New
Bookmark
Subscribe
Mute
Subscribe to RSS Feed
Permalink
Print
Email to a Friend
Report Inappropriate Content
I am getting error literal does not match format string while executing the below script. I am getting the data from oracle database.
If QVD not exists, it will run without any issue. but for incremental loading i am facing the above issue.
I am using vIncrementalExpression variable to filter for latest records.
LET vQvdExists = if(FileSize(‘$(vQvdFile)’) > 0, -1, 0);
IF $(vQvdExists) THEN
LOAD max(TransactionDate) as maxdate
FROM $(vQvdFile) (qvd);
LET vMaxdate = Date(Peek(‘maxdate’,0,’maxdateTab’),’YYYY-MM-DD’);
LET vLast30Days = Date(Peek(‘maxdate’,0,’maxdateTab’)-30,’YYYY-MM-DD’);
IF IsNull(vMaxdate) then
LET vIncrementalExpression = ‘and TransactionDate >= ‘&Chr(39)& ‘$(vLast30Days)’ &Chr(39)&
‘ and TransactionDate = extract(YEAR from sysdate)-3’;
floor(TRANSACTIONDATE) as TransactionDate,
Where TRANSACTIONDATE > ’01-Jan-14′
$(vIncrementalExpression) ; // Include WHERE clause created in «Incremental Setup» tab
IF $(vQvdExists) THEN
// Use CONCATENATE in case we’ve added any new fields.
CONCATENATE ($(vTableName)) LOAD Distinct * FROM $(vQvdFile) (qvd)
« Previous Replies
1
2
Next Replies »
Mark as New
Bookmark
Subscribe
Mute
Subscribe to RSS Feed
Permalink
Print
Email to a Friend
Report Inappropriate Content
I got the solution. Actually it is issue with formatting the date. In the where clause it was reading the date as YYYY-MM-DD instead DD-MMM-YY. SO i changed the date format for vLast30day and vReloadTime and finally it is working fine.
here is the update variable expression.
LET vIncrementalExpression = ‘Where CUSTOMERCODE not in (»A»,»B»,»C») and InvoiceDate >=’ & Chr(39)& ‘$(vLast30date)’ &Chr(39) &
Mark as New
Bookmark
Subscribe
Mute
Subscribe to RSS Feed
Permalink
Print
Email to a Friend
Report Inappropriate Content
May be check this in Debug option rather full download and highlight that line to troubleshoot. That may help to get into work
Mark as New
Bookmark
Subscribe
Mute
Subscribe to RSS Feed
Permalink
Print
Email to a Friend
Report Inappropriate Content
I think there are some mistakes in SQL statement ( $(vIncrementalExpression))
Please run in debug mode or check log script, you can see more detail about SQL statement
Mark as New
Bookmark
Subscribe
Mute
Subscribe to RSS Feed
Permalink
Print
Email to a Friend
Report Inappropriate Content
Hi, This is what i see in the debugger.
ScriptErrorDetails «SQL##f — SqlState: S1000, ErrorCode: 1861, ErrorMsg: [Oracle][ODBC][Ora]ORA-01861: literal does not match format string «
ScriptErrorList General Error
ScriptError General Error
Mark as New
Bookmark
Subscribe
Mute
Subscribe to RSS Feed
Permalink
Print
Email to a Friend
Report Inappropriate Content
I am not able to find any error in the log file.
Mark as New
Bookmark
Subscribe
Mute
Subscribe to RSS Feed
Permalink
Print
Email to a Friend
Report Inappropriate Content
you can using TRACE for output SQL statement ,copy result and run in Oracle Environment
TRACE SQL TRANSACTIONDATE, FROM APPS.XXEGC_QV_SALES_PIPELINE_V Where TRANSACTIONDATE > ’01-Jan-14’$(vIncrementalExpression) ;
Mark as New
Bookmark
Subscribe
Mute
Subscribe to RSS Feed
Permalink
Print
Email to a Friend
Report Inappropriate Content
I’d suggest looking at your vLast30Days variable. Is this being set up correctly? What value does it contain following the LET statement?
Mark as New
Bookmark
Subscribe
Mute
Subscribe to RSS Feed
Permalink
Print
Email to a Friend
Report Inappropriate Content
Mark as New
Bookmark
Subscribe
Mute
Subscribe to RSS Feed
Permalink
Print
Email to a Friend
Report Inappropriate Content
Could be issue here?
Date(TRANSACTIONDATE,’Your Format’) as TransactionDate;
Mark as New
Bookmark
Subscribe
Mute
Subscribe to RSS Feed
Permalink
Print
Email to a Friend
Report Inappropriate Content
That particular Oracle SQL message usually indicates you’ve attempted to format something as a date that Oracle can’t format as a date. Double-check that the formatted dates you are sending the SQL via variables are formatted in the way Oracle expects them, either by replacing the dynamic date ranges with manual date inputs in the same format, or by loading the dynamic values into your regular script and checking the format.
Некоторые ошибки и их устранение
SP2-1503/SP2-0152
Windows Server 2003 R2 с установленным на нём Oracle Client 10.2.0.4. При запуске sqlplus от имени пользователя с администраторскими полномочиями коннект осуществляется без проблем. Но при попытке подключиться к базе от имени пользователя без администраторских полномочий появляется ошибка:
Вызвано это невозможностью создать global object пользователем без администраторских полномочий. Я решил проблему так:
Результат — ошибок нет, пользователь счастлив и может работать.
ORA-28759: сбой при открытии файла
При выполнении обращения из БД (под Windows) к серверу с поддержкой SSL (по HTTPS) появилась ошибка:
Суть проблемы в том, что Oracle Wallet Manager (OWM) при редактировании wallets меняет разрешения на доступ к файлу. В результате файл становится доступным только пользователю, от которого был запущен OWM.
Решение: Измените разрешения на доступ к файлу так, чтобы пользователь, от которого работает Oracle DB, имел доступ хотя бы на чтение.
ORA-12154: TNS:could not resolve the connect identifier specified
PL/SQL Developer и Windows x64.
sqlplus
При попытке подключиться с помощью sqlplus, используя Easy Connect, тоже можно получить ошибку:
Для решения убедитесь, что » $ORACLE_HOME/network/admin/sqlnet.ora » или вообще не содержит параметра » NAMES.DIRECTORY_PATH «, или данный параметр имеет одним из значений (или единственным значением) » EZCONNECT «:
Ошибка компиляции при установке Oracle Client
Первоначально пробуем выполнить:
Для Ubuntu 14.04 вероятно придётся пересоздать symlink:
и создать новый:
и снова пробуем выполнить:
SQL Developer, Oracle XE и ORA-12705 в Linux
При попытке настроить Jasper Reports Integration столкнулся с этой же ошибкой при настройке соединения Tomcat. Решается путём создания » $CATALINA_BASE/bin/setenv.sh » с добавлением в него следующих параметров запуска Java:
У меня содержимое файла выглядит так:
Проблемы с external job (sjsec 6a)
В какой-то момент стал получать ошибку:
Это происходило в Oracle, установленном на сервер под управлением Windows. Решение — убедитесь и при необходимости запустите сервис OracleJobScheduler . Где SID — SID вашего экземпляра БД.
ORA-01075 you are currently logged on
Нашёл решение здесь, но решил у себя продублировать. Итак, если при подключении к БД получаем что-то типа:
нужно выполнить следующие шаги:
SQLDeveloper из Oracle 11g (64 bit) на Windows (64 bit)
При запуске sqldeveloper, который идёт в комплекте с Oracle 11G (11.2.0.4.0, 64bit) и установлен на Windows Server 2008 R2 (64 bit), получаем окно, в котором нас просят указать путь к java.exe. Однако, при указании пути к java, которая идёт вместе с Oracle или же к другой java 64 bit, ничего не происходит, кроме того, что снова появляется это же окно. Если же пытаемся запустить » %ORACLE_HOME%sqldevelopersqldeveloperbinsqldeveloper «, то при указании пути к java получаем сообщение:
Как ни парадоксально, но это решается установкой java 32-bit и добавлением в файл » %ORACLE_HOME%sqldevelopersqldeveloperbinsqldeveloper.conf » строки, в которой с помощью SetJavaHome задан JAVA_HOME (путь к java), например так:
ORA-00845: MEMORY_TARGET not supported on this system
На Windows я с такой ошибкой пока не встречался, а на linux решение простое:
Где: size — размер больше или равен объёму выделяемой для всех экземпляров Oracle памяти. В нашем случае он равен 12Gb (size=12g).
должны получить что-то похожее на следующее:
ORA-12034: materialized view log on «SCHEMA».»MVIEW» younger than last refresh
Можно смотреть ноту 204127.1 на Metlink. В некоторых случаях помогает:
Проблемы при повторной конфигурации Oracle XE.
Один из вариантов повторной конфигурации Oracle XE заключается в удалении » /etc/sysconfig/oracle-xe » (для Red Hat) и выполнении » /etc/init.d/oracle-xe configure «. Однако, если у вас имеется созданное вами табличное пространство в указанном вами файле данных, выполните обязательно бэкап этого табличного пространства. Указанный скрипт выполнит пересоздание DBID для известных ему файлов данных, но не тронет те, что вы создали. Таким образом, после старта системы вы не сможете ни получить доступ к вашим файлам, ни подключить их к БД, т.к. в них прописаны старые DBID. Будьте внимательнее.
ORA-01704: string literal too long
При работе с Oracle через JDBC, столкнулся с проблемой в виде ошибки «ORA-01704: string literal too long». Оказывается, в некоторых случаях (JDBC — один из них) нельзя просто взять и вставить строку длиной больше 4000 символов в поле таблицы. Даже если это поле типа CLOB. Т.е. не прокатывает строка вида:
Пересоздание сессии в удалённой БД (dblink)
Разработчики стали жаловаться, что, при обращении к объекту, размещённому в удалённой БД, через database link, появляется следующая ошибка:
В результате, на требуемом нам сервере будет создана новая сессия. Проблема была решена. Такой вот lifehack.
К сожалению, воспроизвести ситуацию уже невозможно, но, вероятно, могла помочь и следующая последовательность действий:
Certificate of the remote server does not match the target address.
Эта заметка относится к Oracle Database 12.2. В wallet-файле есть необходимый сертификат, но при обращении к ресурсу получаем ошибку:
» habrahabr.ru » и есть то значение, которое необходимо подставить:
Ещё один широко известный в узких кругах ресурс:
ORA-27369: job of type EXECUTABLE failed with exit code: 274662
Если при выполнении shell-скрипта, вызываемого посредством scheduler job’а с типом «external», вы получаете » ORA-27369: job of type EXECUTABLE failed with exit code: 274662 «, проверьте » $ORACLE_HOME/rdbms/admin/externaljob.ora «. Параметры run_user и run_group должны соответствовать пользователю и группе от чьего имени запущен oracle.
ORA-00392: log 1 of thread 1 is being cleared, operation not allowed
При открытии БД с resetlogs получаем ошибку:
Вероятно, первая команда » alter database open resetlogs » завершилась неудачно и в control-файле redo остались в статусе CLEARING/CLEARING_CURRENT: