日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

        歡迎訪問 生活随笔!

        生活随笔

        當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

        编程问答

        oracle 更新记录语句,Oracle语句自动判断是要更新记录还是要插入记录

        發(fā)布時間:2025/3/12 编程问答 22 豆豆
        生活随笔 收集整理的這篇文章主要介紹了 oracle 更新记录语句,Oracle语句自动判断是要更新记录还是要插入记录 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

        最近有一個需求,要做站內(nèi)的關(guān)鍵詞搜索。關(guān)鍵詞要保存到Oracle的表,如果表里沒有該記錄就新增,如果有記錄就將搜索次數(shù)加1。雖然看似簡單,可寫SQL時卻不知從何下手。找了一下,原來是這樣寫法的。記錄一下。

        MERGE INTO KEYWORD T1

        USING (SELECT :NAME AS NAME,:PIN_YIN AS PIN_YIN,:PIN_YIN_FIRST AS PIN_YIN_FIRST,1 As TIMES FROM dual) T2

        ON (T1.NAME=T2.NAME)

        WHEN MATCHED THEN

        UPDATE SET T1.TIMES = T1.TIMES + 1

        WHEN NOT MATCHED THEN

        INSERT(NAME,PIN_YIN,PIN_YIN_FIRST,TIMES) VALUES(T2.NAME,T2.PIN_YIN,T2.PIN_YIN_FIRST,T2.TIMES)

        另外站內(nèi)的搜索關(guān)鍵詞高亮腳本如下

        //定義的配置

        Keyword = {

        //如果配置,則只搜索ID為此的元素,否則搜索整個BODY

        elementid: 'content',

        //是否匹配整個單詞

        exact: false,

        //最大的搜索節(jié)點,避免文檔過大時的假死

        max_nodes: 1000,

        //是否在加載時調(diào)用

        onload: true,

        //樣式的名稱

        style_name: 'keyword',

        //樣式是否有后綴,true則可以使不同的關(guān)鍵詞有不同的顏色

        style_name_suffix: true,

        //前一跳轉(zhuǎn)頁的地址,此參數(shù)只用于調(diào)試時

        debug_referrer: '',

        //用于指定固定要做高亮處理的關(guān)鍵詞

        light_key: '',

        //用于指定固定要做鏈接處理的關(guān)鍵詞

        link_key: ''

        };

        // 網(wǎng)頁處理的主函數(shù)

        Keyword.main = function(strTask_type) {

        // If 'debug_referrer' then we will use that as our referrer string

        // instead.

        // q是網(wǎng)頁從何跳轉(zhuǎn)來的URL地址,也可以自己定。q要做解碼處理

        // e是網(wǎng)頁的內(nèi)容或者是指定元素的內(nèi)容

        // lightkey是要加亮的關(guān)鍵字列表

        // linkkey是要做鏈接的關(guān)鍵字列表

        task_type = strTask_type;

        var q = Keyword.debug_referrer ? Keyword.debug_referrer : document.referrer;

        var e = document.getElementById(Keyword.elementid) ? document.getElementById(Keyword.elementid) : document.body;

        q = decodeURIComponent(q);

        //高度處理

        var lightkey = Keyword.GetLightKeyList(q);

        if (lightkey && e)

        {

        Keyword.lightElement(e, lightkey);

        }

        //鏈接處理

        var linkkey = Keyword.GetLinkKeyList(q);

        if (linkkey && e)

        {

        Keyword.linkElement(e, linkkey,strTask_type);

        }

        };

        // 返回要加亮的關(guān)鍵字列表

        Keyword.GetLightKeyList = function(referrer) {

        var query = null;

        if (referrer.match(/^.*key=([^&]+)&?.*$/i)){

        query = RegExp.$1;

        }

        query = query + " " + Keyword.light_key;

        if (query){

        query = query.replace(//'|"/g, '');

        query = query.split(/[/s,/(,/),/|,-,/+/.]+/);

        }

        return query;

        };

        //返回要加鏈接的關(guān)鍵字列表

        Keyword.GetLinkKeyList = function(referrer) {

        //此處從網(wǎng)頁控件得到固定要做鏈接處理的關(guān)鍵詞

        try

        {

        Keyword.link_key = document.form1.txb_CommonKeyWord.value;

        }

        catch(err)

        {

        }

        var query = null;

        if (referrer.match(/^.*link=([^&]+)&?.*$/i)){

        query = RegExp.$1;

        }

        query = query + " " + Keyword.link_key;

        if (query){

        query = query.replace(//'|"/g, '');

        query = query.split(/[/s,/(,/),/|,-,/+/.]+/);

        }

        return query;

        };

        // 設(shè)置高亮

        Keyword.lightElement = function(elm, lightkey) {

        if (!lightkey || elm.childNodes.length == 0)

        return;

        var qreLight = new Array();

        for (var i = 0; i < lightkey.length; i ++) {

        lightkey[i] = lightkey[i].toLowerCase();

        if (Keyword.exact)

        qreLight.push('//b'+lightkey[i]+'//b');

        else

        qreLight.push(lightkey[i]);

        }

        qreLight = new RegExp(qreLight.join("|"), "i");

        var stylemapper = {};

        for (var i = 0; i < lightkey.length; i ++) {

        if (Keyword.style_name_suffix)

        stylemapper[lightkey[i]] = Keyword.style_name+(i % 5);

        else

        stylemapper[lightkey[i]] = Keyword.style_name+0;

        }

        var textproc = function(node) {

        var match = qreLight.exec(node.data);

        if (match) {

        var val = match[0];

        var k = '';

        var node2 = node.splitText(match.index);

        var node3 = node2.splitText(val.length);

        var span = node.ownerDocument.createElement('SPAN');

        node.parentNode.replaceChild(span, node2);

        span.className = stylemapper[val.toLowerCase()];

        span.appendChild(node2);

        return span;

        }

        else{

        return node;

        }

        };

        Keyword.walkElements(elm.childNodes[0], 1, textproc);

        };

        // 設(shè)置鏈接

        Keyword.linkElement = function(elm, linkkey) {

        if (!linkkey || elm.childNodes.length == 0)

        return;

        var qreLink = new Array();

        for (var i = 0; i < linkkey.length; i ++) {

        linkkey[i] = linkkey[i].toLowerCase();

        if (Keyword.exact)

        qreLink.push('//b'+linkkey[i]+'//b');

        else

        qreLink.push(linkkey[i]);

        }

        qreLink = new RegExp(qreLink.join("|"), "i");

        var textproc = function(node) {

        var match = qreLink.exec(node.data);

        if (match) {

        var val = match[0];

        var k = '';

        var node2 = node.splitText(match.index);

        var node3 = node2.splitText(val.length);

        var link = node.ownerDocument.createElement('A');

        node.parentNode.replaceChild(link, node2);

        link.href = "FullTextSearch.aspx?searchtype=txt&key=" + val;

        link.title = "搜索“" + val + "”";

        link.target="_blank";

        link.appendChild(node2);

        return link;

        }

        else{

        return node;

        }

        };

        Keyword.walkElements(elm.childNodes[0], 1, textproc);

        };

        //用于對網(wǎng)頁元素的遍歷

        Keyword.walkElements = function(node, depth, textproc) {

        var skipre = /^(script|style|textarea)/i;

        var count = 0;

        while (node && depth > 0) {

        count ++;

        if (count >= Keyword.max_nodes) {

        var handler = function() {

        Keyword.walkElements(node, depth, textproc);

        };

        setTimeout(handler, 50);

        return;

        }

        if (node.nodeType == 1) { // ELEMENT_NODE

        if (!skipre.test(node.tagName) && node.childNodes.length > 0) {

        node = node.childNodes[0];

        depth ++;

        continue;

        }

        } else if (node.nodeType == 3) { // TEXT_NODE

        node = textproc(node);

        }

        if (node.nextSibling) {

        node = node.nextSibling;

        } else {

        while (depth > 0) {

        node = node.parentNode;

        depth --;

        if (node.nextSibling) {

        node = node.nextSibling;

        break;

        }

        }

        }

        }

        };

        總結(jié)

        以上是生活随笔為你收集整理的oracle 更新记录语句,Oracle语句自动判断是要更新记录还是要插入记录的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

        如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。