oracle怎么查询换行符,关于oracle:如何检查表中所有列的换行符
假設(shè)有一個(gè)名為" GROUP_DETAILS"的表,該表具有列(名稱,代碼,DESCRIPTION)。
因此,該表如下所示:
我正在嘗試在表格的所有列中找到換行符。 然后,一旦找到該列,我也想顯示為輸出。 我已經(jīng)創(chuàng)建了如下腳本:
DECLARE
BEGIN
FOR r IN (SELECT column_name FROM user_tab_columns WHERE TABLE_NAME = 'GROUP_DETAILS') LOOP
SELECT r FROM GROUP_DETAILS WHERE INSTR(r, CHR(10)) > 0;
END LOOP;
END;
我收到如下錯(cuò)誤:
Error report -
ORA-06550: line 4, column 48:
PLS-00382: expression is of wrong type
ORA-06550: line 4, column 12:
PLS-00382: expression is of wrong type
ORA-06550: line 4, column 5:
PLS-00428: an INTO clause is expected in this SELECT statement
06550. 00000 - "line %s, column %s:
%s"
*Cause: Usually a PL/SQL compilation error.
*Action:
為什么標(biāo)有MySQL?
使用r.column_name獲取列名,并將其更改為動(dòng)態(tài)查詢,在此情況下,您將列名與兩個(gè)地方的查詢字符串連接在一起。 它還缺少INTO子句,無法在變量中獲取字符串。
@tadman我認(rèn)為他們在開發(fā)時(shí)并沒有什么不同
我在"答案"中提供了另一種方法,但是如果您只是想知道是什么觸發(fā)了PLS-00382,那是您傳遞給instr的chr(10)參數(shù)。 您必須將其括在單引號中,以使其成為字符串。
MySQL和Oracle之間的語法可能完全不同。 嘗試一次將您的問題僅集中在一個(gè)平臺上,以免造成混淆。 無論您現(xiàn)在與誰一起工作,要么/或者。
@tadman我明白了。 我的其他問題或答案將有助于避免混淆。
您需要在PL / SQL中執(zhí)行此操作嗎? 您可以使用普通的SQL獲取有問題的行,如下所示:
SELECT name, code, description,
CASE WHEN name ? ? ? ?LIKE '%' || CHR(10) || '%' THEN 'name, ' ? ? ?END ||
CASE WHEN code ? ? ? ?LIKE '%' || CHR(10) || '%' THEN 'code, ' ? ? ?END ||
CASE WHEN description LIKE '%' || CHR(10) || '%' THEN 'description' END
AS where_found
FROM group_details
WHERE name ? ? ? ?LIKE '%' || CHR(10) || '%'
OR code ? ? ? ?LIKE '%' || CHR(10) || '%'
OR description LIKE '%' || CHR(10) || '%';
這將返回所有行,其中至少一列包含換行符,并且計(jì)算出的where_found列將準(zhǔn)確告訴您哪些列具有這些值。 (它們也將清晰可見;如果需要,計(jì)算出的列可用于進(jìn)一步處理。)
總結(jié)
以上是生活随笔為你收集整理的oracle怎么查询换行符,关于oracle:如何检查表中所有列的换行符的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: oracle9i用expdp导出全库,L
- 下一篇: winserver下oracle好运维吗