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 ......
我在开发的这个应用并发性比较高,oracle更新数据时候如何处理并发处理呢?各位大侠发表好的观点啊,在线等待!
oracle数据更新时,会自动默认行锁定,楼主不要操心,Oracle对并行处理已经很成熟了
引用
oracle ......
现在有两张表:文章主表A(articleId,articleTitle),文章评论表B(commentId,articleId,commentTitle)
现在我想实现这样的功能:列出文章列表,其中每篇文章标题下面列出此文章的前2个文章评论,请问sql语句怎么写啊 ......
字段1,字段2.....字段N,Status,ParentID
1,Name1....test1,1,99
1,Name1....test1,3,99
1,Name2....test2,1,101
1,Name2....test2,3,101
1,Name3....test3,2,101
1,Name1....test1,4,101
想要的结果是:
1,Na ......
SQL code:
CREATE OR REPLACE PROCEDURE usp_refreshTopN IS
BEGIN
--文档
INSERT INTO topnresource(resourceId,title,type,cover,brief,properUser,tag,clickAmount,createDate,topNCreateDate,organizat ......