`

oracle 创建表并创建存储过程,通过存储过程将其他用户的信息导入到新建表中

sql 
阅读更多

---------------   创建新序列   -------------------------
create sequence seq_封面标识
minvalue 1                  --- 最小值
maxvalue 99999999999999     ----  最大值
start with 1                -- 从 1 开始
increment by 1              -- 每次增加 1 
cache 20
order;

----------------    创建新表   -------------------------
CREATE TABLE T_封面信息(
  标识列 int,
  单位编码 varchar(20) NULL,
  单位Id varchar(30)NULL, 
  单位名称 varchar(100) NULL,
  单位级别 varchar(30) NULL,
  总部代码 varchar(100) NULL,
  企业单位名称 varchar(100) NULL,
  填表人 varchar(20) NULL,
  通讯地址 varchar(100) NULL,
  邮政编码 varchar(10) NULL,
  电话号码 varchar(20) NULL,
  单位负责人 varchar(20) NULL,
  财务机构负责人 varchar(20) NULL,
  本企业代码 varchar(20) NULL,
  上级企业代码 varchar(20) NULL,
  组织形式 varchar(10) NULL,
  企业类型 varchar(20) NULL,
  级次 varchar(10) NULL,
  报表类型 varchar(20) NULL,
  经营规模 varchar(20) NULL,
  所属行业 varchar(20) NULL,
  日期 varchar(20) NULL,
  年 varchar(10) NULL,
  月 varchar(10) NULL,
  合并个体 varchar(10) NULL,
  ALone_ID varchar(30) NULL,
  PRIMARY key(标识列)          -- 标识列作为主键(也可不定义主键)
) ;

--   drop table T_封面信息
-- select * from T_封面信息


----------------    创建存储过程   -------------------------
Create or replace Procedure P_封面信息
as 
 v_SQL1 varchar(2000);       -- 先定义全局变量
 v_delSql varchar(2000);
begin                        -- 开始

-------------------------------------------- 删除原有表中的数据
v_delSql := 'delete from T_封面信息 where 日期 >= '|| ''''|| add_months(sysdate,-6) || '''';    -- 拼接sql ,当期时间减去六个月
dbms_output.put_line(v_delSql);       --     打印出来
execute immediate v_delSql;           --     执行
commit;                               --     提交

-------------------------------------------- 向表中插入数据
v_SQL1 := 'INSERT INTO T_封面信息        
select SEQ_封面标识.nextVal, F.unit_code 单位编码,F.UNIT_Id 单位ID,F.UNIT_Name 单位名称,F.Level_code 单位级别 ,
A.m10010 总部代码,C.m10000 单位名称,
A.m10005 填表人,A.m10011 通讯地址,A.m10003 邮政编码,A.m10007 电话号码,A.m10008 单位负责人,A.m10002  财务机构负责人 ,
A.m10001 本企业代码,A.m10006 上级企业代码,B.m10003 组织形式,
case B.m10000 when''1'' then ''生产型'' when ''2'' then ''流通型'' when ''3'' then ''进出口型'' when ''4'' then ''服务型''
 when ''5'' then ''管理型'' when ''6'' then ''房地产开发''end 企业类型, B.m10001 级次,
case when B.m10004 = 0 then 1 when B.m10004 = 8 then 0 when B.m10004 = 9 then 2 end  报表类型,
case when D.m10000 = 1 then ''大型'' when D.m10000 = 2 then ''中型'' when D.m10000 = 3 then ''小型'' end 经营规模,
case B.m10002 when ''1'' then ''服装'' when ''2'' then ''棉纺'' when ''3'' then ''毛纺'' when ''4'' then ''家用产业用纺织品''
 when ''5'' then ''商贸及服务'' when ''6'' then ''房地产''end 所属行业,   
E.inputDate 日期,subStr(E.Inputdate,1,4) 年,subStr(E.Inputdate,6,2)  月,
E.Ver 合并个体,A.alone_id
from  IUFO1112.iufo_measure_data_jt6q5gan A
inner join IUFO1112.iufo_measure_data_o7qsn5es  B on A.Alone_Id = B.ALONE_ID
inner join IUFO1112.iufo_measure_data_p6338ya4 D on A.Alone_Id = D.ALONE_ID
inner join IUFO1112.iufo_measure_data_s3xqdt9j C on A.Alone_Id = C.ALONE_ID
inner join IUFO1112.IUFO_MEASURE_PUBDATA E on A.ALONE_ID=E.ALONE_ID
inner join IUFO1112.IUFO_UNIT_INFO F on E.KeyWord1=F.UNIT_ID
where dr = 0 and E.inputDate >='|| ''''|| add_months(sysdate,-6) || '''';
dbms_output.put_line(v_SQL1);
execute immediate v_SQL1;
commit;
end P_封面信息;                  ---   结束存储过程

 

---  在plsql 中执行 存储过程
begin 
  P_封面信息;
end;

 

--- 在 command 命令页面 执行存储过程
exec P_封面信息;
call P_封面信息
 
-- Select * from T_封面信息 
-- drop table T_封面信息

 

--- 得到当前时间,并计算出六个月前的时间
select add_months(sysdate,-6) from dual;
select sysdate from dual;


----------------------  定期执行存储过程  --------------- 
-- P_封面信息 的定期执行
Declare 
job1 number;
begin
dbms_job.submit(job1,'P_封面信息;',TRUNC(sysdate+1)+12/24,'TRUNC(sysdate+1)+2/24');
commit;
end;

 

 

 

将项目中的实例拿出来共享,以备后来的使用。语法容易忘记,这到是一个不错的记忆方法!

分享到:
评论

相关推荐

    Oracle 创建用户以及导入库的脚本

    在Oracle数据库管理中,创建用户、分配权限、导入数据库、管理表空间以及删除用户是常见的运维任务。以下将详细介绍这些操作,并提供相应的SQL脚本。 首先,创建用户是Oracle数据库中的一项基本操作,用于为不同的...

    PLSQL中存储过程的建立,导出,导入,使用

    通过本文的介绍,我们了解到在Oracle数据库中使用PL/SQL创建、导出、导入和使用存储过程的方法。存储过程不仅可以提高SQL语句的执行效率,还能简化复杂的业务逻辑处理。掌握这些技能对于数据库开发者来说是非常重要...

    oracle创建表空间用户和赋权限

    创建用户是指在Oracle数据库中定义新的数据库用户,以便这些用户可以连接到数据库并执行各种操作。 ##### SQL 语句示例: ```sql CREATE USER "WF" PROFILE "DEFAULT" IDENTIFIED BY "wf" DEFAULT TABLESPACE ...

    oracle创建DBA用户

    通过上述步骤和命令,可以有效地在 Oracle 数据库中创建、管理和维护用户及其权限。这些操作对于数据库管理员来说是非常重要的基础技能,能够帮助他们更好地控制数据库的访问权限,确保数据的安全和完整性。

    excel导入oracle数据库

    1. 首先,我们需要在 Oracle 数据库中创建一个新的数据表,以便存储从 Excel 导入的数据。 2. 接下来,我们需要配置 Excel 数据源,包括选择正确的 Excel 版本和配置数据源名。在本例中,我们使用的是 Excel 97-2003...

    通过PLSQL的进行oracle数据库导入导出

    1. **CLOB导出**:创建存储过程,将CLOB内容分割成较小的片段,逐个保存到临时表或CSV文件中。 2. **CLOB导入**:在目标数据库中创建对应存储过程,读取临时表或CSV文件,合并片段并插入CLOB数据。 3. **BLOB导出**...

    oracle 导入导出文档

    本文将详细介绍如何在 Oracle 环境下进行数据的导入导出,主要包括新建数据库、创建表空间、创建数据库用户以及导入数据库的过程。 首先,新建数据库是整个流程的基础。Oracle 提供的 Database Configuration ...

    Oracle11G创建数据库实例

    最后,为了导入DMP文件(数据库导出文件),需要在PL/SQL Developer中执行SQL命令创建用户并授权,以使新用户能够连接到数据库并执行导入操作。 1. **创建用户**:使用CREATE USER命令创建新用户,指定默认表空间、...

    5.1 PLSQL创建表空间-关联用户-DMP文件导入 1

    ### 创建表空间与用户管理 ...通过上述步骤,我们可以有效地管理和维护Oracle数据库中的表空间以及用户的权限分配,同时也可以方便地进行数据导入操作。这些操作对于Oracle数据库管理员来说是非常重要的技能。

    oracle向达梦数据库迁移

    通常采用批量导入或ETL工具,将Oracle数据库中的数据逐条或按表迁移至DM8。这可能需要考虑数据的清洗、转换和优化,以适应DM8的存储格式和特性。 六、创建键,约束,索引 在数据迁移完成后,需要重新创建在第三步中...

    sqlserver导入oracle数据库的数据

    本教程将详细讲解如何将数据从SQL Server导入到Oracle数据库,确保你理解每一步骤,并能顺利进行操作。 首先,我们需要在SQL Server中创建一个新的数据库。这可以通过SQL Server Management Studio (SSMS) 来完成。...

    将SQL Server 2005中数据同步到Oracle中

    在服务器对象的链接服务器下新建,选择合适的OLE DB提供程序(在这种情况下是"OraOLEDB.Oracle"),并填写Oracle的连接信息,如链接服务器名称、产品名称、数据源(对应于tnsnames.ora中的服务名)以及安全性选项,...

    oracle 10g创建外部表

    Oracle 10g中的外部表(External Tables)是一种非常实用的功能,它允许数据库直接读取存储在操作系统文件系统中的数据,而无需先将其导入到常规的数据库表中。这种机制对于处理大量非结构化或半结构化数据,如日志...

    Oracle_11g图形界面创建数据库实例

    - 导入数据文件:使用`impdp`命令或其他工具导入所需的`.dmp`文件到新建的用户yltest中。 通过以上六个步骤,您可以成功地使用Oracle 11g图形界面创建数据库实例,并进行相应的配置工作。这些步骤不仅帮助您构建了...

    oracle导入导出DMP数据库

    通过 DMP 文件,可以将数据库从一个 Oracle 实例迁移到另一个 Oracle 实例,或者将数据库备份到外部存储设备。 DMP 文件的优点 1.方便数据库迁移:DMP 文件可以将数据库从一个 Oracle 实例迁移到另一个 Oracle ...

    oracle数据库迁移

    Oracle 数据库迁移 Oracle 数据库迁移是指将 Oracle 数据库从一个平台迁移到另一...Oracle 数据库迁移是一个复杂的过程,需要注意字符集的设置、用户的导出和导入、表空间的创建和管理、用户的创建和管理等几个方面。

    oracle导入dmp文件

    这种文件通过Oracle提供的导出工具`exp`或`expdp`生成,并可通过导入工具`imp`或`impdp`来重新导入到另一个数据库中。 #### 二、操作步骤详解 ##### 1. 登陆 首先,确保拥有足够的权限以执行导入操作。一般情况下...

    AIX下安装Oracle数据库与导入数据

    - 使用 `smit mkuser` 命令来创建 `oracle` 用户,并将其主组设置为 `oinstall`,同时将 `dba` 设置为其附加组。 **设置密码** - 通过 `passwd oracle` 命令设置 `oracle` 用户的密码。 **验证用户信息** - 使用 `...

Global site tag (gtag.js) - Google Analytics