189 8069 5689

oracle怎么写sql,Oracle怎么写JAVA代码

在oracle数据库中的分页SQL语句怎么写?

前提:

创新互联长期为1000多家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为双城企业提供专业的成都做网站、成都网站建设,双城网站改版等技术服务。拥有十年丰富建站经验和众多成功案例,为您定制开发。

分页参数:size = 20 page = 2;

没有order by的查询;

嵌套子查询,两次筛选(推荐使用)。

SQL语句:

SELECT *

FROM (SELECT ROWNUM AS rowno, t.*

FROM DONORINFO t

WHERE t.BIRTHDAY BETWEEN TO_DATE ('19800101', 'yyyymmdd')

AND TO_DATE ('20060731', 'yyyymmdd')

AND ROWNUM = 20*2) table_alias

WHERE table_alias.rowno 20*(2-1);

扩展资料:

rownum总是从1开始的,第一条不满足去掉的话,第二条的rownum 又成了1。依此类推,所以永远没有不满足条件的记录。

可以这样理解:rownum是一个序列,是Oracle数据库从数据文件或缓冲区中读取数据的顺序。它取得第一条记录则rownum值为1,第二条为2。

依次类推:当使用“、=、=、between...and”这些条件时,从缓冲区或数据文件中得到的第一条记录的rownum为1,不符合sql语句的条件,会被删除,接着取下条。下条的rownum还会是1,又被删除,依次类推,便没有了数据。

oracle怎么写出.sql文件

运行脚本SQL @/admin/XX.sql 这里的/adminXX.sql 是绝对路径名, linux系统的话要注意 目录权限问题,windows就不用。问了人好像得一块一块的在黑框框里执行,不过不能在网页的那个页面里执行,为什么啊?1、建立betchinsert.bat文件。内容:sqlplus username/password@服务名 @BETCH.SQL SQLINSERT.log exit2、建立betah.sql文件。内容:可以写多个sql文件,注意路径要正确。在这里的nkgis.sql是文件夹名3、建立相应的sql文件,如AE_USERS.sql4、执行betchinsert.bat就可以执行所有的sql文件。并且会在betchinsert.bat文件的同目录中生成SQLINSER.log文件。1、登录PL/SQL到指定数据库。2、点击上方工具栏的工具—导出表。3、摁住键盘的ctrl键,选择要导出的表名(即多选)。4、然后勾选下方的“创建表”,选择存放路径及保存的文件名,然后点击“导出”按钮,等待完成即可。

怎么在Oracle中写执行sql的sql语句?

可以使用

execute

immediate

--FYI

--execute

immediate不支持多行返回,如果需要可新建临时表

declare

v_source_sql

varchar2(1000);

v_union_sql

varchar2(1000);

begin

select

column_name

into

v_source_sql

from

table_name

;--get

source

sql

v_union_sql='select

*

from

tablename2,('||v_source_sql

||')

h

where

......';--sql

str

--

之前先创建好所需字段的temp_table

execute

immediate('insert

into

temp_table

'||v_union_sql

);

--在临时表中就是你所需要的数据。

exception

......

--如果只是需要返回单行数据,则可将execute

immediate嵌入在sql中使用

--execute

immediate

str

into

parameter1

,parmeter2...--返回参数

where

column=:parameter....条件参数

--

-我说的很仔细吧:)

今天心情好

end;

oracle统计查询 sql语句应该怎么写

select

substrb(create_time,1,4)

"年份",

sum(decode(substrb(create_time,6,2),'01',commission,0))

"1月",

sum(decode(substrb(create_time,6,2),'02',commission,0))

"2月",

sum(decode(substrb(create_time,6,2),'03',commission,0))

"3月",

sum(decode(substrb(create_time,6,2),'04',commission,0))

"4月",

sum(decode(substrb(create_time,6,2),'05',commission,0))

"5月",

sum(decode(substrb(create_time,6,2),'06',commission,0))

"6月",

sum(decode(substrb(create_time,6,2),'07',commission,0))

"7月",

sum(decode(substrb(create_time,6,2),'08',commission,0))

"8月",

sum(decode(substrb(create_time,6,2),'09',commission,0))

"9月",

sum(decode(substrb(create_time,6,2),'10',commission,0))

"10月",

sum(decode(substrb(create_time,6,2),'11',commission,0))

"11月",

sum(decode(substrb(create_time,6,2),'12',commission,0))

"12月"

from

test

group

by

substrb(create_time,1,4)

此语句是按create_time字段是字符型给出的,如果你的表中此字段是日期型,则进行一下转化

ORACLE的SQL书写规范

/**

ORACLE的SQL规范,目的避免SQL执行错误,提高SQL脚本的质量;

一般执行SQL在command模式下,所以每个完整的语句需要在后面加上斜杠("/"),特别是过程或函数必须在其后加上斜杠("/")

多条非过程SQL语句在最后面一条语句后加上斜杠("/"),如insert、update、delete。在执行完,做下commit;

例子以表名TEST1说明,注意:create_str使用的varchar2类型,长度5000,如果SQL太长,要调整长度。

*/

declare

create_str varchar2(5000) := 'create table TEST1(ID int,REALNAME varchar2(32))';

count_flag number;

begin

select count(*)

into count_flag

from user_tables

where table_name = 'TEST1';

if count_flag 1 then

execute immediate create_str;

else

execute immediate 'drop table TEST1';

execute immediate create_str;

--字段注解规范

execute immediate 'COMMENT ON COLUMN "TEST1"."ID" IS ''编号''';

execute immediate 'COMMENT ON COLUMN "TEST1"."REALNAME" IS ''姓名''';

end if;

end;

/

declare

add_str    varchar2(5000) := 'alter table TEST1 add NICKNAME varchar(32)';

count_flag number;

begin

select count(*)

into count_flag

from user_tab_columns

where table_name = 'TEST1'

and column_name = 'NICKNAME';

if count_flag 1 then

execute immediate add_str;

--字段注解规范

execute immediate 'COMMENT ON COLUMN "TEST1"."NICKNAME" IS ''昵称''';

end if;

end;

/

declare

add_str    varchar2(5000) := 'alter table TEST1 modify NICKNAME varchar(100)';

count_flag number;

begin

select count(*)

into count_flag

from user_tab_columns

where table_name = 'TEST1'

and column_name = 'NICKNAME';

if count_flag = 1 then

execute immediate add_str;

--字段注解规范

execute immediate 'COMMENT ON COLUMN "TEST1"."NICKNAME" IS ''昵称''';

end if;

end;

/

declare

add_str    varchar2(5000) := 'alter table TEST1 drop column NICKNAME';

count_flag number;

begin

select count(*)

into count_flag

from user_tab_columns

where table_name = 'TEST1'

and column_name = 'NICKNAME';

if count_flag = 1 then

execute immediate add_str;

end if;

end;

/

declare

create_str varchar2(5000) := 'create index IDX_TEST1_ID on TEST1(id)';

count_flag number;

begin

select count(*) into count_flag from user_indexes where table_name='TEST1' and index_name='IDX_TEST1_ID';

if count_flag 1 then

execute immediate create_str;

else

execute immediate 'drop index IDX_TEST1_ID';

execute immediate create_str;

end if;

end;

/

declare

create_str varchar2(5000) := 'create sequence SEQ_TEST1 minvalue 1 maxvalue 999999999999 start with 1 increment by 1';

count_flag number;

begin

select count(*) into count_flag from user_sequences where sequence_name='SEQ_TEST1';

if count_flag 1 then

execute immediate create_str;

else

execute immediate 'drop sequence SEQ_TEST1';

execute immediate create_str;

end if;

end;

/

insert into TEST1

(id, realname, nickname)

select 1, '网名', '网虫'

from dual

where not exists (select * from TEST1 where id = 1);

/

update TEST1 set realname='网名', nickname='网虫' where id=1;

/

delete from TEST1 t where t.id=1;

/


分享名称:oracle怎么写sql,Oracle怎么写JAVA代码
文章来源:http://cdxtjz.cn/article/dsdjdjg.html

其他资讯