我想通过java调用动态创建数据表的存储过程,存储过程接收多个参数,如:参数1,表名,参数colum1,等
然后调用存储过程创建该表
然后调用存储过程创建该表
解决方案 »
- group by NULL行的显示
- exp oracle 9.2->imp oracle 10.2没反应
- 触发器影响Java的批处理的提交?
- 父子结构序号
- 新手提问关于scott用户的问题
- oracle为什么一定要用序列实现ID自增,为什么不用mysql或sqlserver的自增实现方式
- 菜鸟问题----触发器
- .net读不出oracle系统表的long字段内容!
- 我已将数据库清空,但是我的 blob 字段还是插入不了数据,就连原来能够插入的,很小的数据都无法插入了,是不是 blob 字段的删除不干净呢
- 求助:请问哪里有oracle8.05中文版或oracle8.06中文版下载,谢谢
- 我想做一个针对oracle的数据库管理工具
- oracle计算日期的问题!
---expsb.append("{call ")
.append("getProcedureName(?,?,?,?,?,?,?,?)}");
csmt = conn.prepareCall(sb.toString());
csmt.setTimestamp(1,comValue.getBeginDate());
csmt.setTimestamp(2,comValue.getEndDate());
csmt.setString(3,deptId);
csmt.setString(4,operId);
csmt.setString(5,status);
csmt.registerOutParameter(6,Types.INTEGER);
csmt.registerOutParameter(7,Types.VARCHAR);
csmt.registerOutParameter(8,OracleTypes.CURSOR); csmt.execute();
(t_name in varchar2)
Authid Current_User
IS
str VARCHAR2(500);
v_Cursor NUMBER;BEGIN
str := 'CREATE TABLE ' || t_name || '(u_name varchar2(20) not null,p_wd varchar2(20) not null)'; v_Cursor := DBMS_SQL.OPEN_CURSOR;
DBMS_SQL.PARSE(v_Cursor,str,DBMS_SQL.NATIVE);
DBMS_SQL.CLOSE_CURSOR(v_Cursor);END TEST;
(t_name in varchar2)
Authid Current_User
IS
str VARCHAR2(500);
v_Cursor NUMBER;
exist int;BEGIN select count(*) into exist from USER_TABLES where TABLE_NAME= t_name;
if ( exist > 0 ) then
execute immediate 'drop table ' || t_name;
end if;
execute immediate 'CREATE TABLE ' || t_name || '(u_name varchar2(20) not null,p_wd varchar2(20) not null)';
END TEST;
CREATE OR REPLACE PROCEDURE MHT_OFM01_PROC
(t_name in varchar2,d_time varchar2,
StationCode varchar2,InstrumentID varchar2,
SamplingRate varchar2,Channel varchar2,F_ComponentCode varchar2
)
Authid Current_User
IS
exist int;BEGINselect count(*) into exist from user_tables where table_name = t_name ;if ( exist > 0 ) then
execute immediate 'insert into '
|| t_name || ' values(0,'
|| d_time || ',' || StationCode || ','
|| InstrumentID || ',' || SamplingRate || ','
|| Channel || ',' || F_ComponentCode || ')';
else
execute immediate 'create table ' || t_name ||
'(id int not null primary key,d_time varchar2(20) not null,StationCode varchar2(20) not null,
InstrumentID varchar2(20) not null,SamplingRate varchar2(20) not null,
Channel varchar2(20) not null,F_ComponentCode varchar2(20) not null)'; execute immediate 'create index INDEX_MHT_OFM01 on ' || t_name || '(id,d_time)' ;
execute immediate 'create sequence SEQ_MHT_OFM01_ID';
execute immediate 'create or replace trigger TRG_MHT_OFM01_ID before insert on ' || t_name ||
' for each row begin
select SEQ_MHT_OFM01_ID.nextval into :new.id from dual;
end;';end if;commit;
EXCEPTION
WHEN OTHERS
THEN
ROLLBACK;END MHT_OFM01_PROC;
/