試圖找出測試VARCHAR列值是否以回車結束的正確方法。試過,但它不工作,數據庫是Oracle 11g
...用於測試字符串值是否包含回車符的SQL查詢
select name from myTable where name LIKE '%\r' OR name like '%\n'
試圖找出測試VARCHAR列值是否以回車結束的正確方法。試過,但它不工作,數據庫是Oracle 11g
...用於測試字符串值是否包含回車符的SQL查詢
select name from myTable where name LIKE '%\r' OR name like '%\n'
查找包含非打印字符,如回車或垂直選項卡或行尾值您可以使用regexp_like功能。在你的情況下,顯示行的最後一個特定列的字符串值包含回車,可以使用類似的查詢。
select *
from your_table_name
where regexp_like(trim(string_column), '[[:space:]]$')
答到的意見
Trim
功能,默認情況下,刪除開頭和結尾的空格,它不會刪除線的回車或結束個字符。讓我們進行一個簡單的測試:
SQL> create table Test_Table(
2 id number,
3 col1 varchar2(101)
4 );
Table created
SQL> insert into Test_Table (id, col1)
2 values(1, 'Simple string');
1 row inserted
SQL> commit;
Commit complete
SQL> insert into Test_Table (id, col1)
2 values(1, 'Simple string with carriage return at the end' || chr(13));
1 row inserted
SQL> commit;
Commit complete
SQL> insert into Test_Table (id, col1)
2 values(1, ' Simple string with carriage return at the end leading and trailing spaces' || chr(13)||' ');
1 row inserted
SQL> commit;
Commit complete
SQL> insert into Test_Table (id, col1)
2 values(1, ' Simple string leading and trailing spaces ');
1 row inserted
SQL> commit;
Commit complete
SQL> select *
2 from test_table;
ID COL1
--------------------------------------------------------------------------------
1 Simple string
1 Simple string with carriage return at the end
1 Simple string with carriage return at the end leading and trailing spaces
1 Simple string leading and trailing spaces
SQL>
SQL> select *
2 from test_table
3 where regexp_like(trim(col1), '[[:space:]]$')
4 ;
ID COL1
----------------------------------------------------------------------------------
1 Simple string with carriage return at the end
1 Simple string with carriage return at the end leading and trailing spaces
SQL>
嘗試
SELECT name from myTable where name like '%'||chr(10) or name like '%'||chr(13)
正確的數字使用將取決於數據庫字符集爲[VAR]的char [2]類型和數據庫國家字符N [VAR]的char [2]的類型設置。 (評論任何使用EBCDIC的人都會碰到這個答案。) –
''[[:space:]] $'的哪部分實際上是檢查回車?它是'$'? – raffian
'[[:space:]]' - 尋找回車(以及答案中提到的其他不可打印字符)。 '$' - 在字符串的末尾搜索匹配項。 –
我試過這個,但是它在末尾拾取帶空格的列,絕對跳過那些帶回車符的列... BTW,+1 for SQLFiddle! – raffian