orcale 视图中的结果赋到一个变量上
解决时间 2021-04-26 12:03
- 提问者网友:遁入空寂
- 2021-04-25 18:57
我想把从一个orcale视图中查出来的结果,赋值到一个变量上,这样的语法怎么写,
也就是说,我要把这个视图select Pvalue from Table ( Format_XML1('<?xml version="1.0" encoding="GB2312" ?><params><param TOLLDATE="20091005" ExitStation="0730101" Shift="" LOCALIP="127.0.0.1"></param></params>'))where Pname='TOLLDATE';的记过赋值到一个变量S上,视图取出来的结果是一个字符串例如20091001
最佳答案
- 五星知识达人网友:杯酒困英雄
- 2021-04-25 19:51
楼主的语法是按orcale来的吧?sql server2000中的trigger中没有before、for each row、new等关键字。下面我写了个,能实现你的功能,只是不知道有没有性能更好的写法。期待更佳的....
if exists(select * from sysobjects where name='Insert_Or_Update_sal')
drop trigger Insert_Or_Update_sal
go
CREATE TRIGGER Insert_Or_Update_sal
ON TEACHER
FOR insert,update
AS
BEGIN
declare @job char(8),@sal numeric(7,2),@eno numeric(4)
--inserted是insert或update触发表临时表,参考下面帮助。
select @eno=eno,@job=job,@sal=sal from inserted
if @job='教授' and @sal<4000
update teacher set sal=4000 where eno=@eno
--下面的两句也可能完成这个功能,只是性能低一些。
-- if exists(select * from inserted where job='教授' and sal< 4000)
-- update TEACHER set sal=4000 where job='教授' AND sal<4000
END
下面是sql server2000帮助文档中相关trigger的部分,希望对你有帮助。
----------------------------------------------------------------
CREATE TRIGGER
创建触发器,触发器是一种特殊的存储过程,在用户试图对指定的表执行指定的数据修改语句时自动执行。Microsoft® SQL Server™ 允许为任何给定的 INSERT、UPDATE 或 DELETE 语句创建多个触发器。
语法
CREATE TRIGGER trigger_name
ON
[ WITH ENCRYPTION ]
{
[ WITH APPEND ]
[ NOT FOR REPLICATION ]
AS
[ { IF UPDATE ( column )
[ UPDATE ( column ) ]
[ ...n ]
| IF ( COLUMNS_UPDATED ( ) updated_bitmask )
column_bitmask [ ...n ]
} ]
sql_statement [ ...n ]
}
}
参数
trigger_name
是触发器的名称。触发器名称必须符合标识符规则,并且在数据库中必须唯一。可以选择是否指定触发器所有者名称。
Table | view
是在其上执行触发器的表或视图,有时称为触发器表或触发器视图。可以选择是否指定表或视图的所有者名称。
WITH ENCRYPTION
加密 syscomments 表中包含 CREATE TRIGGER 语句文本的条目。使用 WITH ENCRYPTION 可防止将触发器作为 SQL Server 复制的一部分发布。
AFTER
指定触发器只有在触发 SQL 语句中指定的所有操作都已成功执行后才激发。所有的引用级联操作和约束检查也必须成功完成后,才能执行此触发器。
如果仅指定 FOR 关键字,则 AFTER 是默认设置。
不能在视图上定义 AFTER 触发器。
我要举报
大家都在看
推荐资讯