可能是因?yàn)槟憬ū淼臅r(shí)候表名上加了“”,oracle認(rèn)為加“”之后是區(qū)分大小寫的。
成都創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司是一家服務(wù)多年做網(wǎng)站建設(shè)策劃設(shè)計(jì)制作的公司,為廣大用戶提供了成都做網(wǎng)站、網(wǎng)站設(shè)計(jì),成都網(wǎng)站設(shè)計(jì),1元廣告,成都做網(wǎng)站選成都創(chuàng)新互聯(lián),貼合企業(yè)需求,高性價(jià)比,滿足客戶不同層次的需求一站式服務(wù)歡迎致電。
可以rename一下表,試試。
alter table TMP_IT_01 rename to TMP_IT_01;
執(zhí)行完再試試
select*from tmp_IT_01;
可以,用雙引號(hào):
CREATE TABLE "test1"
(
"id" NUMBER(10),
"Name" VARCHAR2(20),
"SEX" VARCHAR(2)
)
樓主您好
lower這個(gè)函數(shù)只能傳入一個(gè)參數(shù)
既然是in 自己寫常量 直接寫成小寫即可,否則就要in(lower('A'),lower('B'))這種
如果要區(qū)分,就要額外的設(shè)置。Oracle 默認(rèn)是區(qū)分大小寫。如果不要區(qū)分,就要額外的設(shè)置。 下面就是不區(qū)分的腳本設(shè)置: ALTER SESSION SET NLS_COMP=ANSI; ALTER SESSION SET NLS_SORT=binary_ci;不過(guò)這個(gè)是在當(dāng)前會(huì)話上,也就是說(shuō)在每次發(fā)起查詢的時(shí)候都需要執(zhí)行這個(gè)才能起作用的。 但是網(wǎng)上也有其他的說(shuō)法就是通過(guò)下面的方式來(lái)處理的:select * from TUSER WHERE Lower(USER_CODE) = 'billy' 或者是 select * from TUSER WHERE upper(USER_CODE) = 'BILLY' 但是此種方法會(huì)導(dǎo)致兩個(gè)問(wèn)題: 1、使用Lower或Upper后將不可以使用索引。 2、建議在錄入數(shù)據(jù)的時(shí)間你應(yīng)該進(jìn)行數(shù)據(jù)的格式化。
Oracle 不分大小寫呀
一定是以前SQL Server建表的問(wèn)題 —— 雙引號(hào)
建表時(shí)字段不要加雙引號(hào)
使用ASCII碼 進(jìn)行判斷
下面的例子
Oracle ASCII碼判斷數(shù)字和字母方法--實(shí)用
判斷參數(shù)是數(shù)字和字母
如果是數(shù)字、字母返回結(jié)果為 Y
如果是非數(shù)字非字母返回結(jié)果為N
create or replace function check_number_character(p_param in varchar2)
return varchar2
is
v_length number;
v_chr_trim varchar2(100);
v_chr varchar2(10);
v_ascii number;
v_result varchar2(1);
begin
select trim(p_param)
into v_chr_trim
from dual;
select length(v_chr_trim)
into v_length
from dual;
for i in 1..v_length loop
select substr(v_chr_trim,i,1)
into v_chr
from dual;
select ascii(v_chr)
into v_ascii
from dual;
if (v_ascii between 48 and 57) or
(v_ascii between 65 and 90) or
(v_ascii between 97 and 122) then
v_result := 'Y';
else
v_result := 'N';
return v_result;
end if;
end loop;
return v_result;
exception
when no_data_found then
dbms_output.put_line('Please input parameter!');
return 'N';
end;