sql3

[Q]怎样创建临时表 
[A]8i以上版本 
create global temporary tablename(column list) 
    on commit preserve rows;  --提交保留数据 会话临时表 
    on commit delete rows;    --提交删除数据 事务临时表 
临时表是相对于会话的,别的会话看不到该会话的数据。 
  
[Q]怎么样在PL/SQL中执行DDL语句 
[A]1、8i以下版本dbms_sql包 
    2、8i以上版本还可以用 
execute immediate sql; 
dbms_utility.exec_ddl_statement('sql'); 
  
[Q]怎么样获取IP地址 
[A]服务器(817以上):utl_inaddr.get_host_address 
    客户端:sys_context('userenv','ip_address') 
  
[Q]怎么样加密存储过程 
[A]用wrap命令,如(假定你的存储过程保存为a.sql) 
wrap iname=a.sql 
PL/SQL Wrapper: Release 8.1.7.0.0 - Production on Tue Nov 27 22:26:48 2001 
Copyright (c) Oracle Corporation 1993, 2000.  All Rights Reserved. 
Processing a.sql to a.plb 
提示a.sql转换为a.plb,这就是加密了的脚本,执行a.plb即可生成加密了的存储过程 
  
[Q]怎么样在ORACLE中定时运行存储过程 
[A]可以利用dbms_job包来定时运行作业,如执行存储过程,一个简单的例子,提交一个作业: 
VARIABLE jobno number; 
BEGIN 
    DBMS_JOB.SUBMIT(:jobno, 'ur_procedure;',SYSDATE,'SYSDATE + 1'); 
    commit; 
END; 
之后,就可以用以下语句查询已经提交的作业 
select * from user_jobs; 
  
[Q]怎么样从数据库中获得毫秒 
[A]9i以上版本,有一个timestamp类型获得毫秒,如 
SQL>select to_char(systimestamp,'yyyy-mm-dd hh24:mi:ssxff') time1,  
to_char(current_timestamp) time2 from dual; 
  
TIME1                         TIME2 
----------------------------- ---------------------------------------------------------------- 
2003-10-24 10:48:45.656000    24-OCT-03 10.48.45.656000 AM +08:00 
可以看到,毫秒在to_char中对应的是FF。 
8i以上版本可以创建一个如下的java函数 
SQL>create or replace and compile  
java source 
named "MyTimestamp" 
as 
import java.lang.String; 
import java.sql.Timestamp; 
  
public class MyTimestamp 
{ 
public static String getTimestamp() 
    { 
      return(new Timestamp(System.currentTimeMillis())).toString(); 
    } 
}; 
SQL>java created. 
注:注意java的语法,注意大小写 
SQL>create or replace function my_timestamp return varchar2 
as language java 
name 'MyTimestamp.getTimestamp() return java.lang.String'; 
/ 
SQL>function created. 
SQL>select my_timestamp,to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') ORACLE_TIME from dual; 
MY_TIMESTAMP             ORACLE_TIME 

你可能感兴趣的:(java,oracle,sql,脚本)