• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            Prayer

            在一般中尋求卓越
            posts - 1256, comments - 190, trackbacks - 0, articles - 0
              C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

            db2構建存儲過程過程

            Posted on 2008-08-19 18:39 Prayer 閱讀(877) 評論(0)  編輯 收藏 引用 所屬分類: DB2
            db2構建存儲過程過程:先用自己的翻譯命令把.spp 文件翻譯生成.sqc文件,然后用預編譯命令編譯生成.c文件,然后用綁定命令生成綁定.bnd文件,然后從DB2_SQLROUTINE_COMPILER_PATH參數指定的文件中所描述的路徑中去尋找c的編譯器(window 下是vcvars32.bat,unix 下是sr_cpath文件),如果DB2_SQLROUTINE_COMPILER_PATH指定什么文件,則用默認的文件,win下是sr_cpath.mak(實例名SQLLIBfunctionroutine),unix下是sr_path(實例名/sqllib/function/routine/),
            編譯成功后生成.dll,并幫定到數據庫上,就成功了。

            spp-->.sqc->.c和.bnd->.dll(window下)
            .spp用的是純sql,開發速度快易閱讀,但是翻譯成的.sqc文件很累贅,沒有自己寫的.sqc精練,執行效率也相應較低,java的IDE環境容易死掉。

            下面是我們的實例:

            AIX上db2沒有設置DB2_SQLROUTINE_COMPILER_PATH這個參數,
            也就是說AIX上db2編譯存儲的時候用的參數是值,就是
            實例名/sqllib/function/routine/sr_cpath 這個文件
            sr_cpath的內容如下:
            bin/sh
            PATH=$PATH:/usr/vacpp/bin
            PATH=$PATH:/usr/ibmcxx/bin
            PATH=$PATH:/usr/lpp/xlC/bin
            export PATH

            就是設置AIX上的編譯路徑,sr_cpath的功能就像是我們win上vcvars32.bat。
            你可以在window的機器上的:”實例名SQLLIBfunctionroutinesqlproc數據庫名模式名“下找到編譯好的*.dll文件還有一些中間文件.sqc和c。
            再看一下.log文件,里面就有整個編譯的過程,就知道在window下db2編譯存儲過程的整個步驟了。
            這個.log文件也可以在AIX上相應的位置找到,通過這個文件就可以知道在AIX上用的是什么編譯指令來編譯你的存儲過程了。
            也可以看到B2_SQLROUTINE_COMPILER_PATH這個參數的內容。

            所以我估計在AIX上可以成功編譯,就是就是裝了一些c的編譯軟件,所以編譯的時候db2用sr_cpath的內容搜索c編譯器的位置就可以找到了。

            在hp上也有這個文件其內容是
            #!/bin/sh
            PATH=/opt/aCC/bin:$PATH
            # PATH=$PATH:/opt/ansic/bin
            export PATH

            在.log文件找到了編譯的指令:
            aCC +DAportable +a1 +z -ext -I/db2inst/db2inst1/sqllib/include P0538300.c -b -o P0538300 -L/db2inst/db2inst1/sqllib/lib -ldb2
            db2就會在sr_cpath所指定的路進去找aCC這編譯的文件,aCC是hp自己的c++編譯器。但是在這邊hp機器上沒有找到sr_cprog指定的c++編譯器aCC。不過在hp上還有一個c的編譯文件ld ,我編的一個hello程序就是用他編譯通過的。

            注:我編譯的時候還是用cc命令編譯的,shell會根據當前系統的編譯器安裝情況來決定cc編譯指令調用的是那個編譯器(可能是一個變量)。
            天天久久狠狠色综合| 久久久久久国产精品美女| 亚洲中文字幕无码久久2017| 久久人与动人物a级毛片| 久久精品国产亚洲av水果派| 久久精品这里热有精品| 武侠古典久久婷婷狼人伊人| 精品国产一区二区三区久久久狼| 观看 国产综合久久久久鬼色 欧美 亚洲 一区二区 | 国产精品日韩深夜福利久久| 99久久99久久精品国产片果冻| 久久av高潮av无码av喷吹| AV无码久久久久不卡蜜桃| 久久婷婷国产麻豆91天堂| 国产精品天天影视久久综合网| 99久久免费国产精品热| 色青青草原桃花久久综合| 国产精品伊人久久伊人电影| 亚洲国产精品18久久久久久| 久久噜噜久久久精品66| 狠狠色丁香久久婷婷综合五月| 狠狠色丁香婷婷久久综合五月| 91久久精品国产91性色也| 亚洲国产欧美国产综合久久| 少妇被又大又粗又爽毛片久久黑人| 精品久久久久久国产| 久久综合88熟人妻| 奇米影视7777久久精品人人爽| 国产精品九九久久免费视频 | 囯产极品美女高潮无套久久久| 99久久久久| 亚洲αv久久久噜噜噜噜噜| 亚洲人成网站999久久久综合| 久久久久亚洲精品中文字幕| 国产精品久久久久乳精品爆| 9999国产精品欧美久久久久久| 久久99国产精一区二区三区| 久久国产精品-国产精品| 久久精品国产精品亚洲毛片| 青青草原精品99久久精品66| 精品久久久久久无码不卡|