大夢(mèng)想家

          5年開發(fā)工程師,2年實(shí)施經(jīng)理,X年售前顧問,......
          數(shù)據(jù)加載中……

          2008年4月15日

          Could not instantiate class XXX from tuple at AliasToBeanConstructorResultTransformer 的處理辦法

          今天客戶方服務(wù)器上突然有一個(gè)功能保存了,查看日志信息后發(fā)現(xiàn),錯(cuò)誤信息:

          Could not instantiate class XXX from tuple at AliasToBeanConstructorResultTransformer...

          Google了很久才發(fā)現(xiàn)有可能是HQL語句中別名的問題,具體原因未知,現(xiàn)在處理辦法是,將下面的語句中的別名去掉:

          StringBuffer hql = new StringBuffer("select new ContractItem(l, "
          + " pi.unitPrice, " + " pi.currencyType, " + "pi.currencyTypeDisplay," + " pi.units, "
          + " sum(pi.quantity + pi.adjQuantity), " + " pp, " + " pi.task) "
          + " from PurchasePlanItem pi " + " join pi.purchasePlan pp"
          + " join pi.priorList l " + " where l.supplierNo = ?  "
          + " and pp.id in (");
          具體是否可以解決,還要看一會(huì)兒的部署情況。

          posted @ 2013-01-09 10:57 阿南 閱讀(2288) | 評(píng)論 (0)編輯 收藏
          在企業(yè)內(nèi)部部署Chrome的課前預(yù)習(xí)

              上篇文章中我簡(jiǎn)單闡述了軍工企業(yè)信息化遇到的困境,而我們公司(西安融智軟件有限公司www.xardmu.com)則主要是面向軍工企業(yè)進(jìn)行軟件產(chǎn)品的研發(fā)和定制項(xiàng)目的開發(fā)的。
              在產(chǎn)品實(shí)施和項(xiàng)目研發(fā)過程中,我們的前端技術(shù)人員需要做大量的瀏覽器兼容性的工作。痛苦至極啊~而且,即便完成了兼容性的修改,瀏覽器端的JS解析又變成了巨大的瓶頸!例如我們有一個(gè)項(xiàng)目為了提高用戶使用的時(shí)的方便性,使用了EXTJS4,結(jié)果在IE6下性能極其低下。我們的P8是一個(gè)項(xiàng)目管理軟件,需要使用到基于EXTJS的Gantt組件,但是此組件在IE6下十分不穩(wěn)定,而且經(jīng)常導(dǎo)致IE6崩潰。
             介于上面的種種問題,我們開始尋找從瀏覽器上解決問題的方法,例如使用FireFox或者Chrome,因?yàn)檐姽て髽I(yè)都有域,所以通過域安裝一款軟件是十分容易的。經(jīng)過權(quán)衡,我們決定使用Chrome做為我們軟件的入口。
             在企業(yè)內(nèi)部署Chrome其實(shí)有三種方式:
             1.直接使用Chrome的某一個(gè)版本,對(duì)此版本進(jìn)行精簡(jiǎn)和簡(jiǎn)單的參數(shù)配置,或者內(nèi)置一些自定義的插件,直接進(jìn)行部署。
             優(yōu)點(diǎn):技術(shù)門檻較低,只需要簡(jiǎn)單的精簡(jiǎn)安裝文件和配置參數(shù)即可。
             缺點(diǎn):無法通過統(tǒng)一的策略管理局域網(wǎng)內(nèi)所有的部署情況和策略。
             2.使用Google提供的Chrome商業(yè)版,通過Google提供的商業(yè)版可以輕松定制自己企業(yè)內(nèi)部的Chrome,并生成分發(fā)文件,同時(shí)可以通過配合域策略完成對(duì)局域網(wǎng)內(nèi)的客戶端的行為進(jìn)行限制。
             優(yōu)點(diǎn):此版本是11年放出的,一直和多個(gè)大型企業(yè)緊密合作,相信不久將會(huì)形成更加完善的方案,從而在企業(yè)級(jí)應(yīng)用市場(chǎng)站穩(wěn)腳跟。
             缺點(diǎn):需要在線安裝。
             3.使用Google的Chrome Frame,一個(gè)讓披著IE外殼的Chrome,擁有Chrome的所有性能,只是披著IE的外殼而已。
             優(yōu)點(diǎn):對(duì)于較老一些的企業(yè),而且企業(yè)內(nèi)部又擁有大量的IE時(shí)代產(chǎn)物的企業(yè),絕對(duì)是一個(gè)好選擇。
             缺點(diǎn):需要在線安裝。原有軟件代碼需要修改,才能在用戶瀏覽時(shí)使用Chrome模式。

             看到痛苦了吧?都需要在線安裝。看來下一步只能開始研究Chrome的源碼,修改并編譯屬于自己的瀏覽器了。。。

          posted @ 2013-01-03 12:37 阿南 閱讀(532) | 評(píng)論 (0)編輯 收藏
          查詢Oracle的BLOB類型

          最近在做項(xiàng)目的過程中,有些時(shí)候需要用Oracle的BLOB/CLOB類型存儲(chǔ)一些很長(zhǎng)的文章,一直不知道怎么來進(jìn)行相關(guān)的檢索,經(jīng)過不懈的努力,終于能夠解決這個(gè)問題了。查詢語句如下:
           
          select count(*) from 表名 where dbms_lob.instr(表名.列名, utl_raw.cast_to_raw(convert('關(guān)鍵詞','utf8')), 1, 1) > 0;
           
          需要注意的是,這個(gè)解決方案只能查詢BLOB/CLOB中存儲(chǔ)的是經(jīng)過處理的字符串。
           
          本方法在Oracle 10g上測(cè)試通過
          轉(zhuǎn)自http://commandos.blog.51cto.com/154976/128732

          posted @ 2010-06-17 11:03 阿南 閱讀(871) | 評(píng)論 (0)編輯 收藏
          誰不知道構(gòu)架?

              作為一個(gè)技術(shù)人員,誰不知道構(gòu)架?

              前一段時(shí)間公司找開發(fā)人員談心,有位領(lǐng)導(dǎo)問一位開發(fā)人員,大致對(duì)話如下:

              A:“你了解咱們現(xiàn)在產(chǎn)品的構(gòu)架嗎?能不能談?wù)勀銓?duì)構(gòu)架的看法?”

              B:“… …”

              A:“說說看吧~”

              B:“我不懂構(gòu)架!構(gòu)架是什么?咱們現(xiàn)在的產(chǎn)品還有構(gòu)架呢?”

              作為一個(gè)有3年工作經(jīng)驗(yàn),2家公司經(jīng)歷的VC程序員來說,我覺得,這幾年的積累是白做了!這樣的思想永遠(yuǎn)都只能停留在寫程序上~

              一個(gè)產(chǎn)品沒有構(gòu)件,就如同一個(gè)人沒有靈魂一樣!他不是沒有,只是你沒有去思考,沒有去發(fā)現(xiàn)他而已!

              我記得袁洪剛說過,“一個(gè)偉大的產(chǎn)品背后一定有一個(gè)偉大構(gòu)架師!”,我堅(jiān)信這一點(diǎn)~產(chǎn)品好壞一方面決定于對(duì)現(xiàn)實(shí)問題的解決程度,另一方面是構(gòu)架的好壞!

              幾年前,中國(guó)的軟件公司里面很少出現(xiàn)構(gòu)架師/架構(gòu)師這樣的角色,這幾年開始有改觀了,越來越多的人開始認(rèn)識(shí)到很多錯(cuò)誤的問題,其實(shí)從一開始就是錯(cuò)的。很多事情并沒有謀定而后動(dòng)。一味的追求簡(jiǎn)單,到最后變成了下線很簡(jiǎn)單了!

             說自己不知道構(gòu)架的開發(fā)人員有兩種,新手和沒有思想的新手,拼命的同時(shí)我們也應(yīng)該停下腳步想想,抬起頭看看天空。別總把經(jīng)驗(yàn)的缺失都?xì)w結(jié)于時(shí)間的長(zhǎng)短,更應(yīng)該想想自己是否真的積累過。

          posted @ 2009-07-03 16:33 阿南 閱讀(1676) | 評(píng)論 (6)編輯 收藏
          EJB3下無狀態(tài)會(huì)話Bean發(fā)布為WebService

              無狀態(tài)會(huì)話Bean發(fā)布為WebService是非常有意義的,因?yàn)槿绻覀儗⒚恳粋€(gè)EJB模塊按照SOA的思想做成一個(gè)一個(gè)獨(dú)立的服務(wù)模塊(這里不討論SCA,我認(rèn)為Apache的SCA框架還不夠強(qiáng)大,文檔還不夠全面),同樣的代碼在JavaEE體系之內(nèi)的應(yīng)用程序可以直接使用EJB3直接訪問,JavaEE體系之外的應(yīng)用程序可以直接使用WebService訪問,這一點(diǎn)是非常有意義的。

              下面要考慮的就是如何只寫一份代碼,讓它能做兩樣事情。

              網(wǎng)上有大量的使用EJB3發(fā)布WebService的教程,但是這些教程都是一個(gè)人寫的,基本上沒有太大的參考價(jià)值。最重要的是,他寫的元注釋都是寫在實(shí)現(xiàn)類上的,接口上沒有做任何描述。這種做法有兩個(gè)問題,第一如果你的會(huì)話Bean使用了EM,那么麻煩了,JAXB在做綁定的時(shí)候不認(rèn)識(shí)接口;第二WSDL文件的描述實(shí)際上應(yīng)該是基于接口的描述,應(yīng)該和實(shí)現(xiàn)類沒有太大的關(guān)系。

              看看網(wǎng)上流行的代碼:

           

          1@WebService(name = "PurchaseArrival", serviceName = "PurchaseArrivalService"
          2@SOAPBinding(style = SOAPBinding.Style.RPC) 
          3public class PurchaseArrivalImpl implements IPurchaseArrival {

           

          注意,基于RPC綁定模式下List,Set一類的接口都是不可傳輸?shù)模@點(diǎn)會(huì)很麻煩,要用必須用實(shí)現(xiàn)類。

          看看我的代碼:

          接口:

           

          1@WebService(name = "ILogRemoteService",targetNamespace = "http://www.glnpu.com/dmp/xml"
          2@SOAPBinding(style = SOAPBinding.Style.DOCUMENT) 
          3public interface  ILogRemoteService {

           

          實(shí)現(xiàn)類:

           

          1@Stateless 
          2@Remote(ILogRemoteService.class
          3@WebService(endpointInterface = "com.glnpu.dmp.server.service.base.log.ILogRemoteService",serviceName = "LogRemoteService"
          4public class LogRemoteService extends BaseService implements ILogRemoteService {

           

          這個(gè)WebService是針對(duì)接口發(fā)布出去,而且使用的DOCUMENT樣式,可以直接使用List、Set的接口。

          這個(gè)WebService生成的WSDL文件很有意思:

           

           1<definitions name="LogRemoteService" targetNamespace="http://impl.log.base.service.server.dmp.glnpu.com/" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:ns1="http://www.glnpu.com/dmp/xml" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://impl.log.base.service.server.dmp.glnpu.com/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
           2
           3<import location="http://127.0.0.1:8080/LogRemoteServiceService/LogRemoteService?wsdl&resource=ILogRemoteService_PortType25057.wsdl" namespace="http://www.glnpu.com/dmp/xml" />
           4
           5<service name="LogRemoteService">
           6
           7<port binding="ns1:ILogRemoteServiceBinding" name="LogRemoteServicePort">
           8
           9<soap:address location="http://127.0.0.1:8080/LogRemoteServiceService/LogRemoteService" />
          10
          11</port>
          12
          13</service>
          14
          15</definitions>
          16
          17

           

          里面有import來指引到真正的WSDL文件。這樣很容易將會(huì)話Bean變成WS~一樣的代碼兩樣的功能,超值!

          posted @ 2009-07-02 13:54 阿南 閱讀(1957) | 評(píng)論 (0)編輯 收藏
          Wazaabi 2.0 讓我看到了自定義界面設(shè)計(jì)器的希望

              Wazaabi 2.0 基于 Eclipse3.4/EMF/GEF 的動(dòng)態(tài)界面設(shè)計(jì)和現(xiàn)實(shí)組件,依賴EMF進(jìn)行界面描述,依賴GEF進(jìn)行界面顯示。

              比較起XUI,XSWT,它的設(shè)計(jì)器更加的完善,功能比較1.0版本也有很大的提高,而且作者也提出了使用EMF進(jìn)行數(shù)據(jù)綁定的思路和實(shí)現(xiàn)。

              麻煩的是它本身只提供了Fill和Row兩種布局,Button、Text、List、Label這些基本控件。還好作者的文檔功底不錯(cuò),簡(jiǎn)單幾張圖就把自己的設(shè)計(jì)思路描述的清清楚楚,高手所為,贊一個(gè)!

             在它基礎(chǔ)上可以很簡(jiǎn)單的進(jìn)行擴(kuò)展,而且比擴(kuò)展VE要簡(jiǎn)單的多~這是我喜歡的!現(xiàn)在對(duì)它的使用本人還是處于觀望態(tài)度,一方面等待它的持續(xù)更新,另一方面等待E4的激動(dòng)人心的放出!

              有興趣的朋友可以看看http://www.wazaabi.org/index.php?title=Main_Page

          posted @ 2009-07-01 10:13 阿南 閱讀(2001) | 評(píng)論 (1)編輯 收藏
          不怕錯(cuò),就怕不認(rèn)錯(cuò)

              明顯第一種構(gòu)架比第二種構(gòu)架好很多,但是我們偏偏在第二種構(gòu)架上面掙扎了半年的時(shí)間。

              總是有各種各樣的接口和推辭說業(yè)務(wù)太復(fù)雜,客戶催的太緊,沒辦法把業(yè)務(wù)放到服務(wù)器上,成本太高了!已經(jīng)是2009年了,10年前大家就意識(shí)到維護(hù)是關(guān)鍵,業(yè)務(wù)一定要封裝,不能分散于客戶端… …10年后的今天我們竟然還在掙扎!完全沒有思想,完全沒有設(shè)計(jì),完全沒有接口,完全沒有OO… …!!!

              項(xiàng)目告一段落我要拼命的重構(gòu),徹底抽離公共業(yè)務(wù),徹底剝離特殊業(yè)務(wù),我要OO,我要接口,我要設(shè)計(jì),我甚至還要SOA!

              我錯(cuò)了!我認(rèn)錯(cuò)!可是為什么公司還有那么多的人還是不認(rèn)錯(cuò)呢?做了10年的產(chǎn)品,10年前的東西竟然比10年后的東西還好用!做了10年還是死纏爛打在10年前的原型之上~他們比我更悲哀~

          posted @ 2009-06-30 16:36 阿南 閱讀(500) | 評(píng)論 (3)編輯 收藏
          Lock wait timeout exceeded; try restarting transaction

             粗心大意,老犯錯(cuò)!

             今天上午在調(diào)試EJB3調(diào)用WebService時(shí)一直遇到MySQL報(bào)出的這個(gè)問題。郁悶壞了,只是執(zhí)行了一句update而已,就導(dǎo)致這樣錯(cuò)誤… …

             經(jīng)過半個(gè)小時(shí)排查,終于找到問題所在了。原因是分布式事務(wù)引起的。

             場(chǎng)景描述:

          EJB3操作A表-->調(diào)用WebService-->WebService操作B表

              在操作A表的時(shí)候需要等待WebService的調(diào)用,如果沒有異常,則可以提交事務(wù),如果出現(xiàn)異常,則不能提交事務(wù);

              在操作B表的時(shí)候需要處理異常;

              一個(gè)簡(jiǎn)單的分布式事務(wù),一般情況下是沒有問題的~但是由于我的粗心大意,做成了EJB3也在操作B表,這樣就導(dǎo)致了表被鎖死的情況出現(xiàn)~真是郁悶啊!

          posted @ 2009-04-23 21:41 阿南 閱讀(4294) | 評(píng)論 (0)編輯 收藏
          如何使用代碼重啟RCP程序?

              以前我們的產(chǎn)品重啟RCP應(yīng)用程序的時(shí)候都是找到本地路徑的EXE程序,然后使用:

          1Runtime runtime = Runtime.getRuntime();
          2runtime.exec("cmd.exe /c " + excuteStr );


          重新啟動(dòng)應(yīng)用程序,太復(fù)雜,而且上次打開的參數(shù)都會(huì)丟失。

              今天早上翻看了一下Eclipse的org.eclipse.update.ui CVS,找到了:
          PlatformUI.getWorkbench().restart();
          使用這個(gè)重新啟動(dòng)RCP應(yīng)用程序,非常的方便,而且參數(shù)都在,即使在開發(fā)環(huán)境下也一樣沒有問題!

          posted @ 2009-03-17 18:53 阿南 閱讀(1590) | 評(píng)論 (1)編輯 收藏
          How to show taskbar icon when use splash?

              這個(gè)問題非常的重要!
              做過RCP開發(fā)的朋友應(yīng)該都遇到過,使用AbstractSplashHandler做的登陸界面,在windows的任務(wù)欄上面是不會(huì)顯示的,這個(gè)問題讓客戶用起來很麻煩,總是動(dòng)不動(dòng)就找不到登陸界面了!現(xiàn)在有解決辦法了~

           1Here is the modified Code of the InteractiveSplashHandler Class:
           2
           3
           4    private Shell splash;
           5
           6
           7    public void init(final Shell splash) {
           8        // Shell replaced by one with task bar icon
           9        // (old Style: SWT.TOOL, new Style: SWT.NO_TRIM)
          10        replaceShell(splash);
          11        // Store the shell
          12        super.init(getSplash());
          13        // Configure the shell layout
          14        configureUISplash();
          15        // Create UI Colors and Fonts
          16        createColorsAndFonts();
          17        // Create UI
          18        createUI();
          19        // Create UI listeners
          20        createUIListeners();
          21        // Force the splash screen to layout
          22        splash.dispose();
          23        getSplash().layout(true);
          24        // Keep the splash screen visible and prevent the RCP application from
          25        // loading until the close button is clicked.
          26        doEventLoop();
          27    }

          28
          29
          30    private void replaceShell(Shell splash) {
          31        Shell newSplash = new Shell(Display.getCurrent(), SWT.NO_TRIM);
          32        newSplash.setBackgroundImage(splash.getBackgroundImage());
          33        newSplash.setBounds(splash.getBounds());
          34        newSplash.setFont(splash.getFont());
          35        newSplash.setVisible(true);
          36        setSplash(newSplash);
          37    }

          38
          39
          40    public Shell getSplash() {
          41        return splash;
          42    }

          43
          44
          45    public void setSplash(Shell splash) {
          46        this.splash = splash;
          47    }

          48
          49

          稍稍進(jìn)行改造,就可以了~

          posted @ 2009-03-15 20:59 阿南 閱讀(1315) | 評(píng)論 (0)編輯 收藏
          VE真的回來了

              VE已經(jīng)死亡很久了,整個(gè)Eclipse社區(qū)中,最悲壯的真的要屬VE了。
              偉大的目標(biāo),沒落的貴族!記得去年在北京的時(shí)候,經(jīng)常有朋友問我VE怎么安裝。呵呵VE2.0開始安裝真的很復(fù)雜,偌大的Eclipse-WIKI里面還真的沒有寫多少關(guān)于VE安裝的內(nèi)容。
              去年下載過VE的源碼,打算在VE的基礎(chǔ)上做一個(gè)自己的設(shè)計(jì)工具,但是研究了很久,發(fā)現(xiàn)CVS上的源碼都過于陳舊了,然后就再也沒有關(guān)注過它了。
              很久沒有真正的關(guān)注過Eclipse了,今天上來看看,發(fā)現(xiàn)VE真的回來了!
              現(xiàn)在VE的領(lǐng)導(dǎo)者是深圳的亞松(在西安有分公司,我還真想去試試... ...),而亞松最讓我崇拜的大牛就是Yves YANG,呵呵,EclipseWord的大牛哦!
              我在自己公司的產(chǎn)品里面也引入了建模的概念,下一步就是根據(jù)模型來生成界面,再下一步就是改造VE,讓二次開發(fā)人員開發(fā)起來更容易更加簡(jiǎn)單。
              祝福VE,希望有了亞松,VE會(huì)更好。
           

          預(yù)告下一個(gè)系列文章:
              企業(yè)信息系統(tǒng)建模的思考;
              新VE源碼分析;
             

          posted @ 2009-03-15 15:38 阿南 閱讀(1514) | 評(píng)論 (1)編輯 收藏
          最好的軟件界面繪制工具h(yuǎn)ttp://www.balsamiq.com/

          我見過最好的軟件界面繪制工具h(yuǎn)ttp://www.balsamiq.com/
          真正能達(dá)到又快又好!





          posted @ 2009-02-11 11:38 阿南 閱讀(2392) | 評(píng)論 (0)編輯 收藏
          初談激情

              做人何懼艱險(xiǎn),豪情不變年復(fù)一年,做人有苦有甜,善惡分開兩邊,都為夢(mèng)中的明天!
              上面這段簽名是抄老莫的,每讀一次都會(huì)有不同的體會(huì)。
              沒有維護(hù)Blog已經(jīng)有兩個(gè)多月了,這兩個(gè)月一直在北京出差,已經(jīng)待了兩個(gè)月了,還得再待一個(gè)月!每次出差離開西安總是感覺不舒服,而且從心里要好長(zhǎng)時(shí)間才能適應(yīng),所以就一直沒有維護(hù)Blog。
              晚上和一位美女吃飯,聊天中突然聊到了這個(gè)問題,仔細(xì)想想為什么做什么都覺得沒有意思?為什么會(huì)不適應(yīng)外界環(huán)境的改變?為什么覺得一切都不爽?
              是因?yàn)闆]有了激情,最近缺少了激情!缺少了創(chuàng)造的激情,缺少了生活的激情,缺少了工作的激情,缺少了寫B(tài)log的激情... ...
              重拾激情,這才是重要的!做人何懼艱險(xiǎn)!人生路上本來就充滿了艱險(xiǎn),要勇敢面對(duì),無論是失意還是快樂... ...何必在乎得失,終究一切都會(huì)過去!抓緊時(shí)間,去實(shí)現(xiàn)自己夢(mèng)想!

          posted @ 2008-07-20 23:45 阿南 閱讀(486) | 評(píng)論 (4)編輯 收藏
          Eclipse3.3-3.4MX多國(guó)語言項(xiàng)目放出

              老版本的Eclipse多國(guó)語言項(xiàng)目只維護(hù)到3.2.1版本,以后就再也沒有維護(hù)了,我覺得主要的問題是,語言包太大,一個(gè)包中會(huì)有多種語言,對(duì)于RCP版本的產(chǎn)品漢化起來很不舒服,明明我只要中文,結(jié)果要加入N個(gè)語言進(jìn)來,而且還是20M的包~
              Eclipse的http://download.eclipse.org/eclipse/downloads/最近剛剛放出一個(gè)叫做Babel project的項(xiàng)目,這個(gè)項(xiàng)目就是在解決國(guó)際化的問題,這個(gè)項(xiàng)目旨在為每一個(gè)插件提供獨(dú)立的單語言包,這樣在做RCP項(xiàng)目的時(shí)候,可以根據(jù)需要,打不同的包就可以了~!
              周五的下午測(cè)試了一下,漢化率絕對(duì)在99%以上,而且很多地方的漢化還是很到位的~再有哪些客戶看不懂的地方的了~
              只是有一個(gè)很小的麻煩,就是RCP原來的異常對(duì)話框中的內(nèi)容,每一句后面都會(huì)有\(zhòng)n,莫非多國(guó)語言的時(shí)候\n被轉(zhuǎn)義了?
              希望可以得到改進(jìn)!

          posted @ 2008-04-27 09:33 阿南 閱讀(3180) | 評(píng)論 (4)編輯 收藏
          來自Neil Bartlett 的OSGI BOOK 一個(gè)預(yù)覽版本放出

              Neil Bartlett的當(dāng)下工作就是完成《OSGi in Practice》,今天他在Blog中已經(jīng)放出了本書的一個(gè)預(yù)覽版本(第二章)。一下是書的目錄:

        1. Introduction
        2. First Steps in OSGi
        3. Bundle Dependencies
        4. Introduction to Services
        5. Example: Mailbox Reader GUI
        6. The Whiteboard Pattern
        7. Declarative Services
        8. The Extender Pattern
        9. Integrating Third-party Libraries
        10. Building Web Applications

          從PDF的授權(quán)看是“署名的,非商業(yè)的,可流傳的”,我估計(jì)這本書上市的時(shí)間應(yīng)該很近了,而且官方的PDF版本也會(huì)同步推出的~

          喜歡的朋友可以下下來看看,寫的很詳細(xì),個(gè)人認(rèn)為是本好書,而且此作者應(yīng)該是Eclipse基金會(huì)的人,所以對(duì)OSGI的理解也不錯(cuò)有什么問題~

        11. ps:連接地址:http://neilbartlett.name/blog/osgibook/

          posted @ 2008-04-18 12:41 阿南 閱讀(1647) | 評(píng)論 (3)編輯 收藏
          SQL文件中有Functions,Type如何在sqlplus中執(zhí)行?

              SQL文件中有Functions,Type,那么在sqlplus中要start直接執(zhí)行SQL文件怎么辦?例如:

          CREATE OR REPLACE FUNCTION strcat(input varchar2 )
          RETURN varchar2
          PARALLEL_ENABLE AGGREGATE USING strcat_type;

              將上面的Functions寫入SQL文件中,然后在sqlplus中用start執(zhí)行此文件,后果是此Functions并沒有被創(chuàng)建到數(shù)據(jù)庫中,在后面加上commit;也是沒有用處的,提示的效果是SQL并沒有結(jié)束,sqlplus并沒有真正執(zhí)行。

              這怎么辦?Google了老半天,也沒有人寫到這個(gè)問題,但是看看人家寫Functions和我寫的有一點(diǎn)點(diǎn)區(qū)別,修改一下!

          CREATE OR REPLACE FUNCTION strcat(input varchar2 )
          RETURN varchar2
          PARALLEL_ENABLE AGGREGATE USING strcat_type;
          /

              在Functions最后一行加上一個(gè)/,再執(zhí)行就OK了~看來sqlplus是把/作為一個(gè)Functions或者Type的結(jié)束符了!大家注意了!

          posted @ 2008-04-15 16:04 阿南 閱讀(1877) | 評(píng)論 (2)編輯 收藏
          主站蜘蛛池模板: 宝丰县| 正镶白旗| 罗江县| 泉州市| 吉安市| 卢湾区| 东乡族自治县| 长乐市| 锡林浩特市| 时尚| 平泉县| 四平市| 正镶白旗| 枣庄市| 乐陵市| 东安县| 临颍县| 兴仁县| 独山县| 益阳市| 宁明县| 温州市| 尉犁县| 松滋市| 永修县| 疏勒县| 阳谷县| 东乌珠穆沁旗| 沙湾县| 隆安县| 康平县| 荆州市| 吉木萨尔县| 眉山市| 体育| 曲周县| 辽阳县| 海安县| 济宁市| 黔江区| 龙胜|