内联 SQL PL(Inline SQL PL)
----start
通常SQL PL只能使用在存储过程、触发器、用户自定义函数中,但是有一部分SQL PL也可以直接在命令行编辑器或脚本中使用,它们是:
DECLARE <variable>
SET
CASE
FOR
GET DIAGNOSTICS
GOTO
IF
RETURN
SIGNAL
WHILE
ITERATE
LEAVE
以下SQL PL不能直接在命令行编辑器或脚本中使用,它们只能在存储过程、触发器、用户自定义函数中使用:
ALLOCATE CURSOR
ASSOCIATE LOCATORS
DECLARE <cursor>
DECLARE ...HANDLER
PREPARE
EXECUTE
EXECUTE IMMEDIATE
LOOP
REPEAT
RESIGNAL
CALL
COMMIT/ROLLBACK
示例:
--连接数据库
CONNECT TO SAMPLE!
--内联SQL PL
BEGIN
DECLARE I INT DEFAULT 1;
DECLARE NUM INT DEFAULT 0;
SET NUM=0;
WHILE I<=10
DO
SET NUM=NUM+I;
SET I=I+1;
END WHILE;
END!
--关闭连接
CONNECT RESET!
调用示例:
将示例的内容保存为c:\test.sql,然后在DB2 命令窗口中执行如下命令
db2 -td! -vf c:\test.sql
----更多参见:SQL PL 简介
----声明:转载请注明出处。
----last updated 2010.2.9
----written by wave at 2010.2.9
----end
相关文档:
一:Select语句:
select 字段名 from 表名 where 条件 order by 排序
see:select distinct 从多个相同字段中抓唯一值
see:查找ld_det_andy表中有数据但ld_det_temp表中没数据的数据
select * from ld_det_a ......
下列语句部分是Mssql语句,不可以在access中使用。
SQL分类:
DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE)
DML—数据操纵语言(SELECT,DELETE,UPDATE,INSERT)
DCL—数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK)
首先,简要介绍基础语句:
1、说明:创建数据库
CREATE DATABASE database-nam ......
最近做一个项目,说起来比较恶,是从另一个表中读取数据送到这个表中.而且要用触发器循环这些内容再发出去.
可是如果这个数据量很大的话,会一下子挂死.所以就想到了.能不能,每次我传一点,隔几秒再送一点.
下面是一个简单的例子
declare @i int
set @i=1
while @i<101
begin
insert into Cname ([name],csex,Number) ......
1、在数据库建表的时候字段直接设置为DATETIME类型;
2、执行插入的时候使用如下语句:
PreparedStatement pstmt = conn.prepareStatement("insert into guestbook(gst_user,gst_title,gst_content,gst_ip,gst_time) values(?,?,?,?,getdate())");
3、要把日期从数据库中取出,执行如下语句:
......