常用技巧记录

@@:sqlserver: sa  Chen8023

@@:查看指定端口的状态:  netstat -ano|findstr "80"

@@:优秀的进程管理工具:Process Explorer

@@:windebug配置符号文件:
<1>srv*c:\symbols*http://msdl.microsoft.com/download/symbols   !analyze -v

@@:oracle:
<1>获得一个日期的星期几: to_number(to_char(sysdate,'D'))-1
<2>from dual: oracle中的一个特殊实际存在的表,常用在没有目标表的select语句中 

@@:ORACLE PL/SQL编程之游标:http://www.cnblogs.com/huyong/archive/2011/05/04/2036377.html

@@:格式化时间:select to_char(sysdate,'yyyy-MM-dd HH24:mm:ss') from dual

@@:可用的google镜像:http://www.gfsswy.com/

@@:Oracle解析xml:
//***************************111111111****************************************//
DECLARE 
    v_xmlstr VARCHAR2(1000);    
    v_xml    XMLTYPE;    
    v_title  VARCHAR2(50);    
    v_language  VARCHAR2(50);    
    v_body  VARCHAR2(50);    
BEGIN    
    v_xmlstr := '<html>    
                    <head my="chen" you="hui">    
                        <title>This IS title.</title>    
                        <LANGUAGE>c++</LANGUAGE>   
                        <LANGUAGE>python</LANGUAGE>
                    </head>    
                    <body>I am BODY.</body>    
                 </html>';    
    v_xml := XMLTYPE(v_xmlstr);    -- 生成XML
    
    SELECT EXTRACTVALUE(VALUE(t),'/html/head/@you')   --加上@取属性值  
           ,EXTRACTVALUE(VALUE(t),'/html/head/LANGUAGE')     
           ,EXTRACTVALUE(VALUE(t),'/html/body')     
           INTO v_title ,v_language ,v_body    
    FROM TABLE(XMLSEQUENCE(EXTRACT(v_xml, '/html'))) t;    -- 提取XML节点值
    
    dbms_output.put_line(v_title);    
    dbms_output.put_line(v_language);
    dbms_output.put_line(v_body);    
END; 
/222222222//
DECLARE 
    TYPE v_languageset IS TABLE OF VARCHAR2(10) INDEX BY BINARY_INTEGER;
    v_language      v_languageset;
    v_xmlstr VARCHAR2(1000);
    v_xml    XMLTYPE;
BEGIN    
    v_xmlstr := '<html>
                    <LANGUAGE>JavaScript</LANGUAGE>
                    <LANGUAGE>VBScript</LANGUAGE>
                    <LANGUAGE>JAVA</LANGUAGE>
                 </html>';
    v_xml := XMLTYPE(v_xmlstr);
    
    -- 多个值放在表集合中
    SELECT EXTRACTVALUE(VALUE(t),'/LANGUAGE') 
           BULK COLLECT INTO v_language
    FROM TABLE(XMLSEQUENCE(EXTRACT(v_xml, '/html/LANGUAGE'))) t;
    
    FOR i IN v_language.first .. v_language.last LOOP
        dbms_output.put_line(v_language(i));
    END LOOP;
END;

/33333333//
DECLARE
    --xml字符串
    v_query VARCHAR2(2000) := '
                  <html>    
                    <head my="chen" you="hui">    
                        <title>This IS title.</title>  
                        <laguage>c++</laguage>   
                    </head>   
                    <head my="xiao" you="wei">    
                        <title>This IS title.</title>  
                        <laguage>c++</laguage>   
                    </head>  
                    <body>I am BODY.</body>    
                 </html>'; 


    --定义记录xml变量
    TYPE xml_record_type IS RECORD(
        title   VARCHAR2(2000),
        laguage VARCHAR2(2000)
        );
    TYPE xml_table_type IS TABLE OF xml_record_type;
    xml_table xml_table_type;

    --xml类型
    v_xml xmltype;
BEGIN
    v_xml := xmltype(v_query);
    --查询xml内容
    SELECT * BULK COLLECT
    INTO xml_table
    FROM xmltable('/html/head' passing v_xml columns 
                   titles VARCHAR2(2000) path '@my',
                   laguages VARCHAR2(2000) path '@you'
                  );
                       --遍历xml数据
    FOR temp IN xml_table.first .. xml_table.last
    LOOP
        dbms_output.put_line('>>   title: '||xml_table(temp).title);
        dbms_output.put_line('>>   laguage:  '||xml_table(temp).laguage);
    END LOOP;
                   
  END;
  
 ///模板//
     TYPE xml_record_type IS RECORD(
        strColumName   VARCHAR2(32),
        strValue1 VARCHAR2(64),
strValue2 VARCHAR2(64)
        );
    TYPE xml_table_type IS TABLE OF xml_record_type;
    xml_table xml_table_type;

    --xml类型
    v_xml xmltype;
BEGIN
    v_xml := xmltype(v_query);
    --查询xml内容
    SELECT * BULK COLLECT
    INTO xml_table

    FROM xmltable('/Parameters/Parameter' passing v_xml columns 
                   strColumName VARCHAR2(32) path '@strColumName',
                   strValue1 VARCHAR2(64) path '@strValue1',
  strValue2 VARCHAR2(64) path '@strValue2'
                  );
                       --遍历xml数据
    FOR temp IN xml_table.first .. xml_table.last
    LOOP
    v_strColumName := xml_table(temp).strColumName;
         v_strValue1 := xml_table(temp).strValue1;
         v_strValue2 := xml_table(temp).strValue2;
 
        v_strOptionSQL := CASE 
         WHEN v_strColumName = 'tOperateTime'
         OR v_strColumName = 'tBroadCastTime' THEN v_strOptionSQL || ' AND TO_CHAR(' || v_strColumName || ') >= ''' || v_strValue1 || ''' AND CHAR(' || v_strColumName || ') <= ''' || v_strValue2 || ''''
         ELSE v_strOptionSQL || ' And ' || v_strColumName || ' = ''' || v_strValue1 || ''''
         END ;

    END LOOP;
                   
END;

//***************************************************************************//

@@:SqlServer解析xml:
//***************************************************************************//
DECLARE @hdoc int  --像文件句柄一样
DECLARE @doc varchar(1000)
SET @doc ='
<ROOT>
<Customer CustomerID="VINET" ContactName="Paul Henriot">
   <Order CustomerID="VINET" EmployeeID="5" OrderDate="1996-07-04T00:00:00">
      <OrderDetail OrderID="10248" ProductID="11" Quantity="12"/>
      <OrderDetail OrderID="10248" ProductID="42" Quantity="10"/>
   </Order>
</Customer>
<Customer CustomerID="LILAS" ContactName="Carlos Gonzlez">
   <Order CustomerID="LILAS" EmployeeID="3" OrderDate="1996-08-16T00:00:00">
      <OrderDetail OrderID="10283" ProductID="72" Quantity="3"/>
   </Order>
</Customer>
</ROOT>'

EXEC sp_xml_preparedocument @hdoc OUTPUT, @doc

SELECT *
FROM openxml(@hdoc,'/ROOT/Customer',1)
WITH (CustomerIDt/*后面的'@CustomerID'表示取属性值,没有@表示取文本值*/ VARCHAR(40) '@CustomerID', 
ContactName/*后面没有附加说明的话,默认取属性值,但是此时此名必须与属性名相同*/ VARCHAR(40)) 

注:FROM后面的WITH也是可选的,用来指定获取哪些数据字段
//***************************************************************************//

@@: oracle中的case语句:

<1>
DECLARE
  V_grade char(1) := UPPER('&p_grade');
  V_appraisal VARCHAR2(20);
BEGIN
  V_appraisal :=
  CASE v_grade
    WHEN 'A' THEN 'Excellent'  --注:没有分号
    WHEN 'B' THEN 'Very Good'
    WHEN 'C' THEN 'Good'
    ELSE 'No such grade'
  END; --注:当放在一条语句中时, 不能像<2>用END CASE
  DBMS_OUTPUT.PUT_LINE('Grade:'||v_grade||'  Appraisal: '|| v_appraisal);
END;

<2>
DECLARE
  V_grade char(1) := UPPER('&p_grade');
  V_appraisal VARCHAR2(20);
BEGIN
   CASE
      WHEN V_grade = 'A' THEN
        V_appraisal:='111';
      WHEN V_grade = 'B' THEN
        V_appraisal:='222'; 
      WHEN V_grade = 'C' THEN
        V_appraisal:='333';
      ELSE
         V_appraisal:='你是傻子蛋物';
   END CASE;    --注:没有向上一个例子一样作为一条语句,所以要用:END CASE
   DBMS_OUTPUT.PUT_LINE(V_appraisal);
END;

@@: oracle10g在win732上安装异常退出解决方法:
<1>首先、确保你有该文件夹的完全控制权。(修改:文件夹点右键 属性-〉安全-〉高级-〉所有者-〉改为自己。
<2>接着编辑自己的权限为完全控制)其次、将setup.exe的兼容性改为windows server 2003(server pack 1)。
(就是右键属性-〉兼容性-〉兼容模式中。接着、右键,以管理员身份运行)

@@:vs中的一些常用快捷键:
Ctrl + M + O: 折叠所有方法
Ctrl + M + L: 展开所有方法
Ctrl + K:添加标签
CTRL+SHIFT+F9删除所有的断点

@@:一些小工具
procdump.exe -ma pid              // 创建一个dump文件
umdh.exe -p:pid -f:filepath       // 抓当时的内存分配
umdh.exe file1path file2path -f:resultfile    // 比较内存两次不同

@@: mode com1     // 查看com口的状态

@@: sqlite 函数使用讲解    http://www.runoob.com/sqlite/sqlite-c-cpp.html


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值