Ora 24795 illegal rollback attempt made
Ora 24795 illegal rollback attempt made
I’m trying to migrate 11g Enterprise Edition (o/s: Windows Server 2008) to 11g Express Edition (o/s: LINUX).
In advance, I had problems because of the missing «Partitioning»-Option in Express Edition, as discussed in:ORA-00439: feature not enabled: Partitioning
I decided to use the «data pump» and following command to export:
expdp USERNAME/[email protected] directory=DIRECTORYofBACKUP
This are the errors, which showed up afterwards (ORA-39126 ORA-24795 ORA-06512 ORA-02354 ORA-01891):
ORA-39126: Worker unexpected fatal error in KUPW$WORKER.MAIN [TABLE_DATA:»USERNAME».»Tablename»:»PART000022_24576620000″]
ORA-24795: Illegal ROLLBACK attempt made
ORA-06512: at «SYS.KUPW$WORKER», line 8652
ORA-24795: Illegal ROLLBACK attempt made
ORA-06512: at «SYS.KUPW$WORKER», line 3246
ORA-24795: Illegal ROLLBACK attempt made
ORA-24795: Illegal ROLLBACK attempt made
ORA-06512: at «SYS.KUPW$WORKER», line 13626
ORA-02354: error in exporting/importing data
ORA-01891: Datetime/Interval internal error
ORA-06512: at «SYS.DBMS_SYS_ERROR», line 95
ORA-06512: at «SYS.KUPW$WORKER», line 7858
object line object
handle number name
30437834 18288 package body SYS.KUPW$WORKER
30437834 7885 package body SYS.KUPW$WORKER
30437834 1593 package body SYS.KUPW$WORKER
25E7D8B8 2 anonymous block
Job «HISU».»SYS_EXPORT_SCHEMA_05″ stopped due to fatal error at 18:48:27
Any help appreciated, thank you!
Answers
please confirm that you got posted errors above while running the expdp command above.
And it looks like it’s not a full database export, but a schema export?
You could consider trying the (old) exp/imp tools instead of expdp/impdp.
That is right,
errors occured while running the expdp command above.
Are both Oracle versions identical to 4 decimal places?
I suggest that you invoke expdp locally from Windows EE version to avoid the errors.
The already created export file is around 90GB, so I think it contains data.
11g XE is limited to 11GB of user data.
The already created export file is around 90GB, so I think it contains data.
If you are willing to proceed & ignore the errors, then why start this thread?
Proceed with impdp & live with the results.
My answer related to @SeánMacGC : «And it looks like it’s not a full database export, but a schema export?»
I tried to explain my guess, why it is not only a schema export.
Please consider, that this is my first Database-Project. I will thankfully accept any possible solution.
For now, I can’t provide the exact Oracle versions I’m using (to 4 decimal places), I will add this information tomorrow.
I am not sure if I understood your advice:
«I suggest that you invoke expdp locally from Windows EE version to avoid the errors.» right.
I entered the command: expdp USERNAME/[email protected] directory=DIRECTORYofBACKUP
OEL 5.4 gives error
I have installed OEL5.4 and database 10.2.0.4 the package i installed and not installed are:
— Is not Installed:
elfutils-libelf-devel-static-0.137-3.el5.x86_64.rpm \
elfutils-libelf-devel-0.137-3.el5.x86_64.rpm \
— Is installed
libgomp-4.4.0-6.el5.x86_64.rpm \
kernel-headers-2.6.18-164.el5.x86_64.rpm \
glibc-headers-2.5-42.x86_64.rpm \
libstdc++-devel-4.1.2-46.el5.x86_64.rpm \
sysstat-7.0.2-3.el5.x86_64.rpm \
glibc-devel-2.5-42.x86_64.rpm \
libaio-devel-0.3.106-3.2.x86_64.rpm \
gcc-4.1.2-46.el5.x86_64.rpm \
gcc-c++-4.1.2-46.el5.x86_64.rpm \
libtermcap-devel-2.0.8-46.1.x86_64.rpm \
readline-devel-5.1-3.el5.x86_64.rpm \
unixODBC-2.2.11-7.1.x86_64.rpm \
unixODBC-devel-2.2.11-7.1.x86_64.rpm \
glibc-devel-2.5-42.i386.rpm \
libaio-devel-0.3.106-3.2.i386.rpm \
unixODBC-2.2.11-7.1.i386.rpm \
unixODBC-devel-2.2.11-7.1.i386.rpm \
compat-db-4.2.52-5.1.x86_64.rpm \
compat-gcc-34-3.4.6-4.x86_64.rpm \
compat-gcc-34-c++-3.4.6-4.x86_64.rpm \
gdb-6.8-37.el5.x86_64.rpm \
libXp-1.0.0-8.1.el5.i386.rpm \
libstdc++-devel-4.1.2-46.el5.i386.rpm \
oracle-validated-1.0.0-18.el5.x86_64.rpm
now i have a problem with my database whit expdp and it got me the following error:could this error because of uninstalling elfutil packages?
ORA-39014: One or more workers have prematurely exited.
ORA-39029: worker 1 with process name «DW01» prematurely terminated
ORA-31671: Worker process DW01 had an unhandled exception.
ORA-24795: Illegal ROLLBACK attempt made
ORA-06512: at «SYS.KUPW$WORKER», line 1352
ORA-24795: Illegal ROLLBACK attempt made
ORA-06512: at «SYS.KUPW$WORKER», line 7073
ORA-24795: Illegal ROLLBACK attempt made
ORA-06512: at «SYS.KUPW$WORKER», line 2829
ORA-24795: Illegal ROLLBACK attempt made
ORA-24795: Illegal ROLLBACK attempt made
ORA-06512: at «SYS.KUPW$WORKER», line 10915
ORA-02354: error in exporting/importing data
ORA-39773: parse of metadata stream faile
Job «SYS».»SYS_EXPORT_FULL_02″ stopped due to fatal error at 22:16:55
Dac fails when trying to load a Table in BI Apps 7964
When i am trying to run the ETL Load through DAC, one of the the workflow is failing ie SDE_ORA_APTransactionFact_Distributions_Full
When i look into the session log i see the below error.
i went through this post also http://www.oraworld.co.uk/tag/informatica/
I am not able to find out from session log which column is causing the issue.
WRITER_1_*_1> WRT_8229 Database errors occurred:
ORA-01438: value larger than specified precision allowed for this column
WRITER_1_*_1> CMN_1053 : Rowdata: ( RowType=0(insert) Src Rowid=225688 Targ Rowid=225688
GL_ACCOUNT_ID (GL_ACCOUNT_ID:UniChar.240:): «2006»
BUDGET_ORG_ID (BUDGET_ORG_ID:UniChar.80:): «BUDGET
»
CUSTOMER_ID (CUSTOMER_ID:UniChar.80:): «(NULL)»
CUSTOMER_FIN_PROFL_ID (CUSTOMER_FIN_PROFL_ID:UniChar.80:): «(NULL)»
SUPPLIER_ID (SUPPLIER_ID:UniChar.80:): «4865»
SPLR_ACCT_ID (SPLR_ACCT_ID:UniChar.80:): «1223»
SALES_REP_ID (SALES_REP_ID:UniChar.80:): «(NULL)»
SERVICE_REP_ID (SERVICE_REP_ID:UniChar.80:): «(NULL)»
ACCT_REP_ID (ACCT_REP_ID:UniChar.80:): «(NULL)»
PURCH_REP_ID (PURCH_REP_ID:UniChar.80:): «(NULL)»
PRODUCT_ID (PRODUCT_ID:UniChar.80:): «(NULL)»
SALES_PROD_ID (SALES_PROD_ID:UniChar.80:): «(NULL)»
INVENTORY_PROD_ID (INVENTORY_PROD_ID:UniChar.80:): «(NULL)»
SUPPLIER_PROD_ID1 (SUPPLIER_PROD_ID1:UniChar.80:): «(NULL)»
COMPANY_LOC_ID (COMPANY_LOC_ID:UniChar.80:): «(NULL)»
PLANT_LOC_ID (PLANT_LOC_ID:UniChar.80:): «(NULL)»
OPERATING_UNIT_ORG_ID (OPERATING_UNIT_ORG_ID:UniChar.80:): «81»
PAYABLES_ORG_ID (PAYABLES_ORG_ID:UniChar.80:): «81»
LEDGER_ID (LEDGER_ID:UniChar.80:): «2021»
COMPANY_ORG_ID (COMPANY_ORG_ID:UniChar.80:): «COMPANY
23273″
BUSN_AREA_ORG_ID (BUSN_AREA_ORG_ID:UniChar.80:): «(NULL)»
CTRL_AREA_ORG_ID (CTRL_AREA_ORG_ID:UniChar.80:): «(NULL)»
FIN_AREA_ORG_ID (FIN_AREA_ORG_ID:UniChar.80:): «(NULL)»
SALES_ORG_ID (SALES_ORG_ID:UniChar.80:): «81»
PURCHASE_ORG_ID (PURCHASE_ORG_ID:UniChar.80:): «81»
ISSUE_ORG_ID (ISSUE_ORG_ID:UniChar.80:): «(NULL)»
DOC_TYPE_ID (DOC_TYPE_ID:UniChar.80:): «ACCT_DOC
PREPAY»
CLRNG_DOC_TYPE_ID (CLRNG_DOC_TYPE_ID:UniChar.80:): «(NULL)»
REF_DOC_TYPE_ID (REF_DOC_TYPE_ID:UniChar.80:): «(NULL)»
POSTING_TYPE_ID (POSTING_TYPE_ID:UniChar.80:): «(NULL)»
CLRNG_POST_TYPE_ID (CLRNG_POST_TYPE_ID:UniChar.80:): «(NULL)»
COST_CENTER_ID (COST_CENTER_ID:UniChar.80:): «(NULL)»
PROFIT_CENTER_ID (PROFIT_CENTER_ID:UniChar.80:): «(NULL)»
DOC_STATUS_ID (DOC_STATUS_ID:UniChar.80:): «ACCT_DOC_STATUS
UNPOSTED»
BANK_ID (BANK_ID:UniChar.80:): «(NULL)»
TAX_TYPE_ID (TAX_TYPE_ID:UniChar.80:): «(NULL)»
PAY_TERMS_ID (PAY_TERMS_ID:UniChar.80:): «10002»
PAY_METHOD_ID (PAY_METHOD_ID:UniChar.80:): «AP
CHECK»
PROJECT_ID (PROJECT_ID:UniChar.80:): «(NULL)»
TASK_ID (TASK_ID:UniChar.80:): «(NULL)»
FINANCIAL_RESOURCE_ID (FINANCIAL_RESOURCE_ID:UniChar.80:): «EXPENDITURE_TYPE
»
EXPENDITURE_ORG_ID (EXPENDITURE_ORG_ID:UniChar.80:): «(NULL)»
SOURCE_ID (SOURCE_ID:UniChar.80:): «AP
MANUAL INVOICE ENTRY»
TRANSACTION_DT (TRANSACTION_DT:Date:): «06/11/2008 10:26:23.000000000»
POSTED_ON_DT (POSTED_ON_DT:Date:): «06/01/2008 00:00:00.000000000»
CONVERSION_DT (CONVERSION_DT:Date:): «(NULL)»
ORDERED_ON_DT (ORDERED_ON_DT:Date:): «(NULL)»
INVOICED_ON_DT (INVOICED_ON_DT:Date:): «01/30/2008 00:00:00.000000000»
PURCH_ORDER_DT (PURCH_ORDER_DT:Date:): «(NULL)»
SPLR_ORDER_DT (SPLR_ORDER_DT:Date:): «(NULL)»
INVOICE_RECEIPT_DT (INVOICE_RECEIPT_DT:Date:): «01/30/2008 18:26:21.000000000»
CLEARED_ON_DT (CLEARED_ON_DT:Date:): «(NULL)»
CLEARING_DOC_DT (CLEARING_DOC_DT:Date:): «(NULL)»
BASELINE_DT (BASELINE_DT:Date:): «01/30/2008 00:00:00.000000000»
PLANNING_DT (PLANNING_DT:Date:): «(NULL)»
PAYMENT_DUE_DT (PAYMENT_DUE_DT:Date:): «(NULL)»
AP_DOC_AMT (AP_DOC_AMT:Double:): «-2.29942034647008e+037»
AP_LOC_AMT (AP_LOC_AMT:Double:): «-2.29942034647008e+037»
AP_REMAINING_DOC_AMT (AP_REMAINING_DOC_AMT:Double:): «0.00000000000000»
AP_REMAINING_LOC_AMT (AP_REMAINING_LOC_AMT:Double:): «0.00000000000000»
XACT_QTY (XACT_QTY:Double:): «(NULL)»
UOM_CODE (UOM_CODE:UniChar.50:): «(NULL)»
DB_CR_IND (DB_CR_IND:UniChar.30:): «CREDIT»
ACCT_DOC_ID (ACCT_DOC_ID:UniChar.80:): «AP_PREPAY
25371″
ACCT_DOC_NUM (ACCT_DOC_NUM:UniChar.80:): «(NULL)»
ACCT_DOC_ITEM (ACCT_DOC_ITEM:Double:): «(NULL)»
ACCT_DOC_SUB_ITEM (ACCT_DOC_SUB_ITEM:Double:): «(NULL)»
CLEARING_DOC_NUM (CLEARING_DOC_NUM:UniChar.80:): «(NULL)»
CLEARING_DOC_ITEM (CLEARING_DOC_ITEM:Double:): «(NULL)»
SALES_ORDER_NUM (SALES_ORDER_NUM:UniChar.80:): «(NULL)»
SALES_ORDER_ITEM (SALES_ORDER_ITEM:Double:): «(NULL)»
SALES_SCH_LINE (SALES_SCH_LINE:Double:): «(NULL)»
SALES_INVOICE_NUM (SALES_INVOICE_NUM:UniChar.80:): «(NULL)»
SALES_INVOICE_ITEM (SALES_INVOICE_ITEM:Double:): «(NULL)»
PURCH_ORDER_NUM (PURCH_ORDER_NUM:UniChar.80:): «(NULL)»
PURCH_ORDER_ITEM (PURCH_ORDER_ITEM:Double:): «(NULL)»
PURCH_INVOICE_NUM (PURCH_INVOICE_NUM:UniChar.80:): «303716A»
PURCH_INVOICE_ITEM (PURCH_INVOICE_ITEM:Double:): «1.000000000000000»
CUST_PUR_ORD_NUM (CUST_PUR_ORD_NUM:UniChar.80:): «(NULL)»
CUST_PUR_ORD_ITEM (CUST_PUR_ORD_ITEM:Double:): «(NULL)»
SPLR_ORDER_NUM (SPLR_ORDER_NUM:UniChar.80:): «(NULL)»
SPLR_ORDER_ITEM (SPLR_ORDER_ITEM:Double:): «(NULL)»
REF_DOC_NUM (REF_DOC_NUM:UniChar.80:): «12649»
REF_DOC_ITEM (REF_DOC_ITEM:Double:): «(NULL)»
DOC_HEADER_TEXT (DOC_HEADER_TEXT:UniChar.255:): «(NULL)»
LINE_ITEM_TEXT (LINE_ITEM_TEXT:UniChar.255:): «PrePayment for outstanding invoices»
ALLOCATION_NUM (ALLOCATION_NUM:UniChar.80:): «(NULL)»
GL_BALANCE_ID (GL_BALANCE_ID:UniChar.320:): «2021
81″
BALANCE_ID (BALANCE_ID:UniChar.320:): «2021
4865″
FED_BALANCE_ID (FED_BALANCE_ID:UniChar.320:): «2006
»
DELETE_FLG (DELETE_FLG:UniChar.1:): «N»
DOC_CURR_CODE (DOC_CURR_CODE:UniChar.30:): «USD»
LOC_CURR_CODE (LOC_CURR_CODE:UniChar.30:): «USD»
EXCHANGE_DT (EXCHANGE_DT:Date:): «06/01/2008 00:00:00.000000000»
CREATED_BY_ID (CREATED_BY_ID:UniChar.80:): «1280»
CHANGED_BY_ID (CHANGED_BY_ID:UniChar.80:): «1280»
CREATED_ON_DT (CREATED_ON_DT:Date:): «01/30/2008 18:31:19.000000000»
CHANGED_ON_DT (CHANGED_ON_DT:Date:): «06/11/2008 10:26:23.000000000»
AUX1_CHANGED_ON_DT (AUX1_CHANGED_ON_DT:Date:): «11/06/2008 10:41:34.000000000»
AUX2_CHANGED_ON_DT (AUX2_CHANGED_ON_DT:Date:): «(NULL)»
AUX3_CHANGED_ON_DT (AUX3_CHANGED_ON_DT:Date:): «(NULL)»
AUX4_CHANGED_ON_DT (AUX4_CHANGED_ON_DT:Date:): «(NULL)»
DATASOURCE_NUM_ID (DATASOURCE_NUM_ID:Double:): «1000.000000000000»
INTEGRATION_ID (INTEGRATION_ID:UniChar.80:): «INVDIST
25371″
TENANT_ID (TENANT_ID:UniChar.80:): «DEFAULT»
X_CUSTOM (X_CUSTOM:UniChar.10:): «(NULL)»
)
WRITER_1_*_1> CMN_1761 Timestamp Event: [Sat May 11 18:17:31 2013]
WRITER_1_*_1> WRT_8164 Error loading into target [W_AP_XACT_FS] : Bad rows exceeded Session Threshold [1]
WRITER_1_*_1> WRT_8333 Rolling back all the targets due to fatal session error.
WRITER_1_*_1> CMN_1761 Timestamp Event: [Sat May 11 18:17:32 2013]
WRITER_1_*_1> CMN_1022 Database driver error.
CMN_1022 [
ORA-24795: Illegal ROLLBACK attempt made
Database driver error.
Function Name : Commit
Database driver error.
Function Name : Rollback]
WRITER_1_*_1> CMN_1761 Timestamp Event: [Sat May 11 18:17:32 2013]
WRITER_1_*_1> WRT_8183 Rollback failed for the target [W_AP_XACT_FS]
WRITER_1_*_1> CMN_1761 Timestamp Event: [Sat May 11 18:17:32 2013]
WRITER_1_*_1> WRT_8080 Writer run terminated. [Error loading data and error threshold reached]
WRITER_1_*_1> WRT_8168 End loading table [W_AP_XACT_FS] at: Sat May 11 18:17:31 2013
WRITER_1_*_1> WRT_8035 Load complete time: Sat May 11 18:17:31 2013
Last updated on APRIL 03, 2020
Applies to:
Symptoms
1. When running an export Data pump job on 10.2.0.4 on Windows, the following errors occur:
2. The errors mainly occur on Oracle10g Release 2 (10.2.0.1 and 10.2.0.2 and 10.2.0.3 and 10.2.0.4) on Microsoft Windows platforms.
3. The errors occur on random tables.
Changes
Cause
To view full details, sign in with your My Oracle Support account.
Don’t have a My Oracle Support account? Click to get started!
In this Document
Symptoms |
Changes |
Cause |
Solution |
References |
My Oracle Support provides customers with access to over a million knowledge articles and a vibrant support community of peers and Oracle experts.
Oracle offers a comprehensive and fully integrated stack of cloud applications and platform services. For more information about Oracle (NYSE:ORCL), visit oracle.com. пїЅ Oracle | Contact and Chat | Support | Communities | Connect with us | |
|
| Legal Notices | Terms of Use
Русские Блоги
Полнотекстовый индекс Oracle
Полнотекстовый индекс Oracle
1. Установите лексический анализатор
n chinese_lexer: Это новый китайский анализатор, который поддерживает только utf8 набор символов. Как видно выше, chinese vgram lexer Этот анализатор не распознает широко используемые китайские слова, поэтому блок анализа очень механический, как и приведенный выше ‘ Минжан ’ , ‘ Встаньте ’ Не отображается только на китайском языке, так что это term Это бессмысленно, но влияет на эффективность. chinese_lexer Самым большим улучшением является анализатор. Может понимать большую часть распространенной китайской лексики, поэтому может более эффективно анализировать предложения. Две глупые единицы, подобные приведенным выше, больше не появятся. Повышенная эффективность. Но поддерживает только utf8, Если ваша база данных zhs16gbk Набор символов, можно использовать только глупый Chinese vgram lexer.
Если вы не сделаете никаких настроек, Oracle Использование по умолчанию basic_lexer Это анализатор. Чтобы указать, какой из них использовать lexer, Ты можешь это сделать:
ctx_ddl.create_preference (‘my_lexer’, ‘chinese_vgram_lexer’);
Во-вторых, создайте полнотекстовый индекс
В учреждении intermedia При индексировании укажите lexer:
CREATE INDEX myindex ON mytable(mycolumn) indextype is ctxsys.context parameters(‘lexer my_lexer’);
※ Личный опыт: после создания полнотекстового индекса используйте инструмент разработчика pl / sql для просмотра таблицы, и вы не сможете увидеть информацию индекса в столбце индекса.
И я столкнулся с ошибкой при удалении полнотекстового индекса:
SQL> drop index searchkeytbl_key;
drop index searchkeytbl_key
ORA-29868: cannot issue DDL on a domain index marked as LOADING
ORA-29868: cannot issue DDL on a domain index marked as LOADING
Примечание. При создании индекса, отключении, перезапуске и т. Д. Индекс был прерван и не выполнялся успешно.Об этой ошибке будет сообщаться во время последующих операций, таких как удаление или перестроение.
Решение: принудительно удалить индекс ind_name только drop, а затем перестроить
Три, обслуживание синхронизации индекса
Используйте следующие два job Будет сделано ( В job Должен быть построен под тем же пользователем, что и таблица ) :
VARIABLE jobno number;
SYSDATE, ‘SYSDATE + (1/24/4)’);
VARIABLE jobno number;
SYSDATE, ‘SYSDATE + 1’);
После сборки запустите его вручную:
※ Личный опыт: могут возникнуть проблемы с выполнением задания. В настоящее время вы можете запустить индекс отдельно и попробовать его.
Если нет проблем с запуском в одиночку, проверьте, правильно ли написано задание или есть ли у текущего работающего пользователя базы данных Oracle разрешение на запуск хранимых процедур.
SQL> exec dbms_job.run(190);
begin dbms_job.run(190); end;
ORA-12011: execution of 1 jobs failed
ORA-06512: at «SYS.DBMS_IJOB», line 406
ORA-06512: at «SYS.DBMS_JOB», line 272
ORA-06512: at line 1
Вышеупомянутая ошибка вызвана тем, что пользователь не запускает какие-либо хранимые процедуры. В настоящее время вам необходимо добавить это разрешение пользователю:
SQL> grant execute any procedure to oracle_username;
Посмотрите на ситуацию с работой еще раз
select * from user_jobs;
Связанный запрос: выберите * from table_name, где contains (column_name, ‘keyword’)> 0;
SQL> выберите * из searchkeytbl, где type = ‘City’ и содержит (key, ‘Yangpu’)> 0;
Проблемы, возникающие при добавлении полнотекстовой индексации (постоянно обновляется)
SQL> create index gh_ghname_idx on gh(ghname) indextype is ctxsys.context parameters(‘lexer gh_ghname_lexer’);
create index gh_ghname_idx on gh(ghname) indextype is ctxsys.context parameters(‘lexer gh_ghname_lexer’)
ORA-24795: Illegal COMMIT attempt made
ORA-29855: error occurred in the execution of ODCIINDEXCREATE routine
ORA-20000: Oracle Text error:
DRG-50857: oracle error in drvddl.IndexCreate
ORA-20000: Oracle Text error:
DRG-50857: oracle error in drvdml.MaintainKTab
ORA-24795: Illegal COMMIT attempt made
ORA-06512: at «CTXSYS.DRUE», line 160
ORA-06512: at «CTXSYS.TEXTINDEXMETHODS», line 364
To avoid the error, please use one of the following solutions
Полнотекстовый поиск (текст оракула)
Oracle text должен индексировать доступные для поиска элементы данных, чтобы пользователи могли находить контент с помощью поиска. Процесс индексирования моделируется в соответствии с конвейером. В этом конвейере после серии преобразований данные будут добавлены в индекс. в. Процесс индексации разделен на несколько этапов, как показано на следующем рисунке.
1. Извлечение данных (хранилище данных): просто возьмите данные из хранилища данных (например, веб-страницы, большие объекты базы данных или локальные файловые системы), а затем передайте их на следующий этап в виде потока данных. Чтобы
2. Фильтр: фильтр отвечает за преобразование данных в различных форматах файлов в формат обычного текста.Другие компоненты конвейера индекса могут обрабатывать только данные обычного текста и не могут распознавать форматы файлов, такие как Ms word или excel. Чтобы
3. Разделитель: Разделитель добавляет метаданные о структуре исходного элемента данных. Чтобы
4. Лексерный анализ (Lexer): в зависимости от языка элемента данных символьный поток делится на несколько слов. 5. Индекс (Index): последний этап добавляет ключевые слова к фактическому индексу. Чтобы
Разница между полнотекстовым поиском и обычным поиском
Без использования текстовой функции Oracle. Конечно, есть много способов поиска текста в базе данных Oracle, например, функция INSTR и операция LIKE:
1 、SELECT *FROM mytext WHERE INSTR (thetext, ‘Oracle’) > 0;
2 、SELECT * FROM mytext WHERE thetext LIKE ‘%Oracle%’;
Часто бывает, что instr и подобные являются идеальными, особенно когда поиск охватывает только небольшую таблицу. Однако эти методы позиционирования текста приведут к полному сканированию таблицы, что является более дорогостоящим с точки зрения ресурсов, а реализованная функция поиска также очень ограничена.Поэтому при поиске больших текстовых данных рекомендуется использовать функцию полнотекстового поиска, предоставляемую устной.
Вложение: Вот, кстати, запись INSTR и LIKE:
В Oracle вы можете использовать функцию Instr, чтобы оценить строку, чтобы определить, содержит ли она указанный символ. Синтаксис: Instr (строка, подстрока, позиция, вхождение).
строка: представляет исходную строку (записанное поле указывает содержимое этого поля).
substring: представляет подстроку, которую вы хотите найти в исходной строке.
Вхождение: представляет количество вхождений подстроки, которую вы хотите найти в исходном символе. Этот параметр также является необязательным и по умолчанию равен 1.
Значение позиции отрицательное, значит поиск справа налево.
Сравнение производительности между instr и подобными
Фактически, с точки зрения эффективности, тот, кто может использовать индекс, будет иметь более высокую скорость запроса.
Like может иногда использовать индекс, например: имя типа « %», но индекс будет недействительным в следующих ситуациях: имя типа «% ». Поэтому обычно, когда мы ищем китайские символы, похожие на «% character%», индекс будет недействительным. В отличие от других баз данных Oracle поддерживает функциональные индексы. Например, если вы создаете индекс instr для поля имени, скорость запроса будет выше, поэтому instr более эффективен, чем аналогичный.
Примечание. Instr (title, ’manual’)> 0 эквивалентно «% manual%»
instr (title, ’manual’) = 0 не эквивалентно ’% manual%’
Принцип Oracle Text Index
Текстовый индекс Oracle преобразует все символы текста в токены. Например, www.taobao.com будет преобразовано в токены, такие как www, taobao, com.
Oracle10g поддерживает четыре типа индексов:
context、 ctxcat、ctxrule、 ctxxpath
CONTEXT
Он используется для получения больших объемов непрерывных текстовых данных. Поддержка множества форматов данных, таких как слово, html, xml, текст. Поддержка раздела диапазона, поддержка типа индекса параллельного индексирования (Parallel indexing). Поддерживаемые типы: VARCHAR2, CLOB, BLOB, CHAR, BFILE, XMLType и URIType.
После операции DML требуется ручной индекс синхронизации CTX_DDL.SYNC_INDEX. Если в запросе несколько слов, разделите их пробелами (например, oracle itpub)
тематическое исследование:
Настроить полнотекстовый поиск
Шаг Шаг 1. Проверьте и установите роль базы данных.
Сначала проверьте, есть ли в базе данных пользователи CTXSYS и роли CTXAPP. Если такого пользователя и роли нет, это означает, что функция мультимедиа не установлена при создании вашей базы данных (установка 10G по умолчанию имеет этого пользователя и роли). Чтобы установить эту функцию, необходимо изменить базу данных. При установке по умолчанию пользователь ctxsys заблокирован, поэтому сначала необходимо включить пользователя ctxsys.
Шаг 2: расширение прав и возможностей
Под пользователем ctxsys предоставьте тестирующему пользователю scott следующие разрешения:
Шаг 3. Настройте лексер
Шаг 4. Создайте указатель в поле book_abstract. Используйте ORATEXT_LEXER, который только что установил: chinese_vgram_lexer в качестве анализатора.
Следующая инструкция может проверить, произошла ли ошибка при создании индекса:
Шаг 5: проверка запроса
Полнотекстовая индексация и операции DML
Вставить операцию:
Удалить операцию:
После операции удаления индекс будет немедленно обновлен.
Операция обновления:
Для операции обновления он должен включать операции удаления и вставки, а индекс может быть обновлен после ручной синхронизации.
Создайте полнотекстовый индекс для нескольких полей
Во многих случаях необходимо запрашивать записи, удовлетворяющие условиям, из нескольких текстовых полей. В настоящее время необходимо установить полнотекстовый индекс для нескольких полей. Например, необходимо выполнить полнотекстовый поиск по имени темы (название темы) и брифинтро (введение) pmhsubjects (таблица тем) Для поиска вам необходимо выполнить следующие действия:
Создайте предпочтение для многопольного индекса, войдите в систему с помощью ctxsys и выполните:
Создайте значение поля, соответствующее предпочтению (войдите с помощью ctxsys) и проиндексируйте три поля пути к заголовку book_abstract:
Создайте полнотекстовый индекс:
CREATE INDEX demo_abstract_title ON textdemo(book_abstract) indextype IS ctxsys.context parameters(‘ DATASTORE ctxsys. ctx_demo_ abstract_title lexer ORATEXT_LEXER’);
SELECT score (20), t. * FROM textdemo t WHERE contains (book_abstract, ‘Мобильный замок или Россия’, 20)> 0;
Получить тест для больших полей
CREATE TABLE mytable(id NUMBER PRIMARY KEY, docs CLOB);
INSERT INTO mytable VALUES(111555,’this text will be indexed’);
INSERT INTO mytable VALUES(111556,’this is a direct_datastore example’);
CREATE INDEX myindex ON mytable(docs)
indextype IS ctxsys.context
parameters (‘datastore ctxsys.default_datastore’);
SELECT * FROM mytable WHERE contains(docs, ‘text’) > 0;
1 . Создайте определение хранилища данных ( Datastore ), используя хранилище данных с несколькими столбцами для создания полнотекстового индекса по нескольким столбцам
2 . Создайте лексический анализатор ( Lexer )
3 . Создать полнотекстовый индекс (индекс в DML Обновлять автоматически после отправки)
— Синхронизировать индекс вручную (если используется автоматическая синхронизация, этот шаг можно пропустить)
begin
ctx_ddl.sync_index( ‘INFOGRID_COM_FULL_IDX’ );
end;
4. Использовать запрос полнотекстового индекса (отсортированный по частоте появления)
5 . Удалить полнотекстовый индекс (удалить лексический анализатор, удалить определение хранилища данных, удалить индекс)
begin
ctx_ddl.drop_preference( ‘INFOGRID_COM_DATASTORE’ ); — Удалить определение хранилища данных DataStore
ID документа: 785728.1 Типы: PROBLEM Modified Date: 25-FEB-2009 Статус: REVIEWED
It seems you have some invalid objects in XDB schema or XDB installation is INVALID.
Solution— check DBA Registry for status of installed components
set pages 1000
column comp_id format A10
column version like comp_id
column comp_name format A35
col status for a15
select comp_id, status, version, comp_name from dba_registry order by 1;
— check for invalid XDB objects
col owner for a15
col object_name for a30
col object_type for a30
You can try to recompile all invalid objects using:
SQL> connect / as sysdba
SQL> @?/rdbms/admin/utlrp.sql
Then check the invalid XDB objects again. If there are no invalid XDB objects then try the export again.
If you still have invalid XDB objects which cannot be compiled then you may have to re-install XDB as described in the note specified below:
● Эта статья организована из Интернета.
● Эта статья находится в itpub (http://blog.itpub.net/26736162), блог-сад (http://www.cnblogs.com/lhrbest) И личный публичный аккаунт WeChat (xiaomaimiaolhr) Синхронизировано
● Версия этой статьи в формате pdf и адрес облачного диска про рассаду пшеницы:http://blog.itpub.net/26736162/viewspace-1624453/
● База данных письменных тестовых интервью, банк вопросов и ответов:http://blog.itpub.net/26736162/viewspace-2134706/
● QQ группа:230161599Группа WeChat: приватный чат
● Свяжитесь со мной, пожалуйста, добавьте QQ друзей (646634621), укажите причину добавления
● Завершено в Magic City с 9 мая 2017 года с 9:00 до 30 мая 2017 года в 22:00.
● Содержание статьи взято из примечаний к исследованию сеянцев пшеницы, а некоторые из них собраны из Интернета. Пожалуйста, поймите, есть ли какие-либо нарушения или нарушения.
● Все права защищены, добро пожаловать, чтобы поделиться этой статьей, сохраните исходный код для перепечатки.
Поднимите трубку и используйте Клиент WeChat Сканируйте нижеоставилИзображение для публикации в публичном отчете WeChat о саженцах пшеницы: xiaomaimiaolhr, сканированиеправоПрисоединяйтесь к группе QQ саженцев пшеницы с QR-кодом, Изучите наиболее практичную технологию баз данных.
Источники информации:
- http://community.oracle.com/tech/developers/discussion/1087584/oel-5-4-gives-error
- http://community.oracle.com/tech/apps-infra/discussion/2537166/dac-fails-when-trying-to-load-a-table-in-bi-apps-7964
- http://support.oracle.com/knowledge/Enterprise%20Management/1638321_1.html
- http://russianblogs.com/article/1668899432/