oracle 如何在sql中使用变量 - Oracle / 开发
create or replace trigger......触发器
.....中间省略
begin
tablename:='CLTX_'||'201002';
insert into tablename(SBBH,FXBH,HPHM,HPZL,HPYS) values(:new.SBBH,:new.FXBH,:new.HPHM,:new.HPZL,:new.HPYS);
--如何把变量tablename作为表名放在into后面,我这样直接跟在into后面报错
ora-04098 trigger ... is invalid and failed re-validation
end;
使用动态sql语句
修改一下动态sql:
execute immediate 'insert into ' ||tablename ||'(SBBH,FXBH,HPHM,HPZL,HPYS) values(:1,:2,:3,:4,:5)' using :new.SBBH,:new.FXBH,:new.HPHM,:new.HPZL,:new.HPYS;
谢谢,OK了,送分
相关问答:
可能因为工作的原因 接触数据库这块比较少,之前都是做程序这块,数据库这块都有专门的人来做 分工都很明细 所以对数据库这一块完全不了解。前段时间 去面试了几家公司 几乎都是在数据库这块挂掉的 连个简单的SQ ......
现在有两张表:文章主表A(articleId,articleTitle),文章评论表B(commentId,articleId,commentTitle)
现在我想实现这样的功能:列出文章列表,其中每篇文章标题下面列出此文章的前2个文章评论,请问sql语句怎么写啊 ......
CREATE OR REPLACE PROCEDURE usp_refreshTopN
IS
BEGIN
--文档
INSERT INTO topnresource(resourceId,title,type,cover,brief,properUser,tag,clickAmount,createDate,topNCreateDate,o ......
将一个查询语句赋给一个变量,如下:
DECLARE @STR NVARCHAR(MAX)
SET @STR='SELECT * from SALE_PROD'
怎么样才能执行它呢?
请高手,仁兄,侠姐帮帮忙啊
多谢,可以啦,高手啊
直接执行就行了
exec ......