
select col1,col2,type
from (select col1,col2,type,rn,max() over(partitio by type) as rn_max
from (select col1,col2,type,row_number() over (paritition by type order by dbms_randomvalue) as rn
from tablename ) t
) p
where rn/rn_max<=01
;
sample不确定能不能用分析函数,但是主要是用来全表取sample的
sqoop import "-Dorgapachesqoopsplitterallow_text_splitter=true" \
--connect jdbc:oracle:thin:@1722117:1521:orcl \
--username username \
--password password \
--table test_table \
--hive-import \
--hive-overwrite \
--hive-database ods \
--hive-table test_table \
--hive-partition-key dt \
--hive-partition-value 20210126 \
--as-parquetfile
1、打开plsql,输入数据库信息,使用用户名和密码,登录Oracle数据库;
2、成功登录数据库后,可以看到当前数据库相关信息列表,PLSQL提供了强大的工具菜单;
3、导出dmp文件的话,只需点击“工具”,在下拉菜单中找到“导出表”;
4、然后选择相应需要导出的表,在红框处选择生成文件位置,点击导出,则PLSQL就会调用导出命令执行导出;
5、如需要将已有的dmp文件导入现有数据库,可以点击“工具”,在下拉菜单中,点击“导入表”。
6、在导入选项卡中,在红框处选择要导入的文件路径,点击“导入”;
7、然后,PLSQL自动调用imp命令,在命令提示符执行导入工作(如下图),这样利用plsql工具就可以完成dmp文件的导入导出了。
你可以试试PRM for Oracle。 ParnassusData Recovery Manager(以下简称PRM)是企业级ORACLE数据灾难恢复软件,可直接从Oracle9i,10g,11g,12c的数据库数据文件(datafile)中抽取还原数据表上的数据,而不需要通过ORACLE数据库实例上执行SQL来拯救数据。ParnassusDataRecovery Manager是一款基于JAVA开发的绿色软件,无需安装,下载解压后便可直接使用。 恢复场景1 误Truncate表的常规恢复 D公司的业务维护人员由于误将产品数据库当做测试环境库导致错误地TRUNCATE了一张表上的所有数据,DBA尝试恢复但是发觉最近的备份不可用,导致无法从备份中恢复出该数据表上的记录。 此时DBA决定采用PRM来恢复已经被TRUNCATE掉的数据。 由于该环境中 所有数据库文件均是可用且健康的,用户仅需要 字典模式下加载SYSTEM表空间的数据文件以及被TRUNCATED表的数据文件即可,例如: create table ParnassusDatatorderdetail_his1 tablespace users as select from parnassusdatatorderdetail_his; SQL> desc ParnassusDataTORDERDETAIL_HIS Name Null Type ----------------------- -------- -------------- SEQ_ID NOT NULL NUMBER(10) SI_STATUS NUMBER(38) D_CREATEDATE CHAR(20) D_UPDATEDATE CHAR(20) B_ISDELETE CHAR(1) N_SHOPID NUMBER(10) N_ORDERID NUMBER(10) C_ORDERCODE CHAR(20) N_MEMBERID NUMBER(10) N_SKUID NUMBER(10) C_PROMOTION NVARCHAR2(5) N_AMOUNT NUMBER(7,2) N_UNITPRICE NUMBER(7,2) N_UNITSELLINGPRICE NUMBER(7,2) N_QTY NUMBER(7,2) N_QTYFREE NUMBER(7,2) N_POINTSGET NUMBER(7,2) N_OPERATOR NUMBER(10) C_TIMESTAMP VARCHAR2(20) H_SEQID NUMBER(10) N_RETQTY NUMBER(7,2) N_QTYPOS NUMBER(7,2) select count() from ParnassusDataTORDERDETAIL_HIS; COUNT() ---------- 984359 select bytes/1024/1024 from dba_segments where segment_name='TORDERDETAIL_HIS' and owner='PARNASSUSDATA'; BYTES/1024/1024 --------------- 18971875 SQL> truncate table ParnassusDataTORDERDETAIL_HIS; Table truncated SQL> select count() from ParnassusDataTORDERDETAIL_HIS; COUNT() ---------- 0 启动PRM ,并选择 Tools => Recovery Wizard 点击Next 在此TRUNCATE场景中并未采用ASM存储,所以仅需要选择 《Dictionary Mode》字典模式即可:
1,进入plsql,登录oracle数据库,打开‘工具-ODBC导入器’
2,在‘来自ODBC的数据’标签下,在‘用户/系统 DSN’处选择MS Access Database,然后输入用户名、密码,点‘连接’,在d出的窗口中选择你的mdb文件。然后确定。
3,在‘到oracle的数据’标签下,选择你要导入的表,再点‘导入’按钮就可以了。
SQL>conn / as sysdba;
SQL>shutdown immediate;
SQL>startup mount;
SQL>show parameter undo;(这里可以查看undo的表空间管理方式应该是auto)
SQL>alter system set undo_management=manualscope=spfile;
SQL>shutdown immediate;
SQL>startup;
我们的思路是新建一个undo表空间,替换原来损坏的表空间删除掉原来的坏的undo表空间如果不放心,还可以建个和以前损坏的表空间同名的undo表空间再替换回来这里设新建undo表空间名为undo2,原来环掉的表空间名为undotbs1
SQL>create undo tablespace undo2 datafile'd:\oracle\oradata\orcl\undo2dbf' size 200M;
SQL>alter system set undo_tablespace=undo2scope=spfile;
SQL>drop tablespace undotbs1 including contents anddatafiles;
SQL>create undo tablespace undotbs1datafile 'd:\oracle\oradata\orcl\undotbs01dbf' size 200M;
SQL>alter system set undo_tablespace=undotbs1scope=spfile;
SQL>drop tablespace undo2 including contents anddatafiles;
到这里原来的undo表空间就恢复了记得把管理方式设置为auto很简单不再罗嗦
以上就是关于用oracle从每个分类中随机抽取10%的数据怎么实现全部的内容,包括:用oracle从每个分类中随机抽取10%的数据怎么实现、sqoop抽取oracle数据至hive并建表、ORACLE中用PLSQL如何把.DMP文件导入到库中等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)