PL/SQL常用句法
1、循环插入测试数据:
SQL>
declare
maxrecords constant int:=100;
i int :=1;
Begin
for i in 1..maxrecords loop
--插入数据
Insert into TEST.EXAMPLE(name,phone,address) values('分页测试数据....','联系电话','联系地址');
end loop;
commit;
end;
此处EXAMPLE表定义为(ID number,name varchar2(50),phone varchar2(50),address varchar2(50)),且ID通过触发器实现自增加。
触发器内容如下:
begin
select emp_sequence.nextval into :new.id from dual;
end;
在插入到191条记录十,出现如下错误,不知道为什么,以后再看
ORA-06502: PL/SQL: 数字或值错误 : 数值精度太高
ORA-06512: 在"TEST.TIB_EXAMPLE", line 3
ORA-04088: 触发器 'TEST.TIB_EXAMPLE' 执行过程中出错
...
2、两种oracle的分页方法:
①采用rownum关键字(三层嵌套)
SELECT * from(
SELECT A.*,ROWNUM
num from
(SELECT * from t_order)A
WHERE
ROWNUM<=15)
WHERE num>=5;
--返回第5-15行数据
②采用row_number解析函数进行分页(效率更高)
SELECT xx.* from(
SELECT t.*,row_number() over(ORDER BY o_id)AS num
from t_order t
)xx
WHERE num BETWEEN 5 AND 15;
--返回第5-15行数据
解析函数能用格式
函数() over(pertion by 字段 order by 字段);
Pertion 按照某个字段分区
Order 按照某个字段排序
相关文档:
SQL 中的 TRIM 函数
是用来移除掉一个字串中的字头或字尾。最常见的用途是移除字首或字尾的空白。这个函数在不同的资料库中有不同的名称:
MySQL: TRIM(), RTRIM(), LTRIM()
Oracle: RTRIM(), LTRIM()
SQL Server: RTRIM(), LTRIM()
各种 trim 函数的语法如下:
TRIM ([[位置] [要移除的字串] from ] 字串): [位置 ......
1.在查询分析器下查询Excel文档
Select * from
OpenDataSource('Microsoft.Jet.OLEDB.4.0','Data Source = "c:\测试.xls";User ID = Admin;Password=;Extended properties=Excel8.0)....Sheet1$
2.从数据库中导出数据并存到文件中
EXEC master..xp_cmdshell 'bcp CAS2004..HGZ_LIAOJIAN out c:\temp1.xls -c -q -S"."- ......
SQL注入简单分析
示例语句:
select * from admintable where adminName like '%a%'
在查询中我们一般在a这个地方由界面传入不同的值,当我们在a这里传入的值为“'”单引号时,拼凑成的SQL语句就如下:
select * from admintable where adminName like '%'%'
执行这句语句我们会发现出现以下异常:
......
在使用ODP.NET进行Oracle编程时,有时候SQL语句非常复杂,需要采用动态构造查询语句的情况,有两种方法可以构造动态的SQL语句,并执行返回结果集。
1、在数据访问层构造SQL语句
例如下面的语句,将构造完整的SQL语句赋值给CommandText,再传递到数据库进行执行,返回结果集。
loadCommand.CommandType = Com ......
本系列文章导航
[Oracle]高效的SQL语句之分析函数(一)--sum()
[Oracle]高效的SQL语句之分析函数(二)--max()
[Oracle]高效的SQL语句之分析函数(三)--row_number() /rank()/dense_rank()
[Oracle]高效的SQL语句之分析函数(四)--lag()/lead()
有些时候我们希望得到指定数据中的前n列,示例如下:
得到每个部门薪水最高的 ......