>  기사  >  데이터 베이스  >  Oracle 定位10亿条数据

Oracle 定位10亿条数据

WBOY
WBOY원래의
2016-06-07 17:06:101099검색

Oracle 定位10亿条数据: /**app 通过ID查询此ID所在的表及分区,1张表100个表分区的定位存储过程*parm id ID*return table_name 表

Oracle 定位10亿条数据:

/*
*app 通过ID查询此ID所在的表及分区,1张表100个表分区的定位存储过程
*parm id ID
*return table_name 表名,par_name 分区名
*/
create or replace procedure Locate(id in varchar2, table_name out varchar2, par_name out varchar2) authid current_user is
MAXSTR varchar2(12) := '000999999999';
begin
  if id > MAXSTR or LENGTH(id) 12 then
    dbms_output.put_line('id不合法!');
  else
    --定位id号所在的表
    table_name := 'TF_00'||SUBSTR(id,3,1);
    --定位id号所在的分区
    par_name := 'P_0'||SUBSTR(id,4,2);
  end if;
end ;
/

set serveroutput on
declare
table_name varchar2(10);
par_name varchar2(10);
begin
  Locate('000999034567',table_name,par_name);
  dbms_output.put_line('所在表:'||table_name);
  dbms_output.put_line('所在分区:'||par_name);
end;
/

linux

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.