可能是因为你建表的时候表名上加了“”,oracle认为加“”之后是区分大小写的。
成都创新互联网站建设公司是一家服务多年做网站建设策划设计制作的公司,为广大用户提供了成都做网站、网站设计,成都网站设计,1元广告,成都做网站选成都创新互联,贴合企业需求,高性价比,满足客户不同层次的需求一站式服务欢迎致电。
可以rename一下表,试试。
alter table TMP_IT_01 rename to TMP_IT_01;
执行完再试试
select*from tmp_IT_01;
可以,用双引号:
CREATE TABLE "test1"
(
"id" NUMBER(10),
"Name" VARCHAR2(20),
"SEX" VARCHAR(2)
)
楼主您好
lower这个函数只能传入一个参数
既然是in 自己写常量 直接写成小写即可,否则就要in(lower('A'),lower('B'))这种
如果要区分,就要额外的设置。Oracle 默认是区分大小写。如果不要区分,就要额外的设置。 下面就是不区分的脚本设置: ALTER SESSION SET NLS_COMP=ANSI; ALTER SESSION SET NLS_SORT=binary_ci;不过这个是在当前会话上,也就是说在每次发起查询的时候都需要执行这个才能起作用的。 但是网上也有其他的说法就是通过下面的方式来处理的:select * from TUSER WHERE Lower(USER_CODE) = 'billy' 或者是 select * from TUSER WHERE upper(USER_CODE) = 'BILLY' 但是此种方法会导致两个问题: 1、使用Lower或Upper后将不可以使用索引。 2、建议在录入数据的时间你应该进行数据的格式化。
Oracle 不分大小写呀
一定是以前SQL Server建表的问题 —— 双引号
建表时字段不要加双引号
使用ASCII码 进行判断
下面的例子
Oracle ASCII码判断数字和字母方法--实用
判断参数是数字和字母
如果是数字、字母返回结果为 Y
如果是非数字非字母返回结果为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;