欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

oracle關(guān)聯(lián)查詢報invalid number錯誤的解決方法

 更新時間:2024年09月30日 10:21:30   作者:java-zh  
這篇文章主要介紹了oracle關(guān)聯(lián)查詢報invalid number錯誤的解決方法,文中通過代碼示例和圖文結(jié)合的方式講解的非常詳細(xì),對大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下

出現(xiàn)問題的原因和背景

oracle進(jìn)行關(guān)聯(lián)查詢的時候因?yàn)樽侄?strong>存在多個用逗號切割的id,導(dǎo)致查詢的過程中報無效數(shù)字或非法數(shù)字

問題復(fù)現(xiàn)1

新建表A

CREATE TABLE  "A" (
  id NUMBER NOT NULL,
  name VARCHAR2(255 BYTE)
)
 
INSERT INTO "A" VALUES ('1', '上海');
INSERT INTO "A" VALUES ('2', '北京');
INSERT INTO "A" VALUES ('3', '廣州');
INSERT INTO "A" VALUES ('4', '深圳');

新建表B

 
CREATE TABLE  "B" (
  id NUMBER NOT NULL,
  aid VARCHAR2(255 BYTE)
)
 
INSERT INTO "B" VALUES ('1', '1,2,3');
INSERT INTO "B" VALUES ('2', '1,2');
INSERT INTO "B" VALUES ('3', '1,2,3,4');

問題復(fù)現(xiàn)2

select * from A where id in (select aid from B where id = 3)

產(chǎn)生的原因:因?yàn)椴樵冞^程中,多個id放在了一個字段,這個字段不止有數(shù)字也有逗號,id是數(shù)字類型,所以數(shù)據(jù)庫識別以后直接會報非法數(shù)字。

解決方法

先將子查詢轉(zhuǎn)成多行

	WITH 
    split_string AS (
		        SELECT   (select aid from B  where id = 3)AS string FROM dual
    )
SELECT 
    REGEXP_SUBSTR(string, '[^,]+', 1, LEVEL) AS aid
FROM 
    split_string
CONNECT BY
    REGEXP_SUBSTR(string, '[^,]+', 1, LEVEL) IS NOT NULL;

再次查詢A表數(shù)據(jù)

 select * from A  where id  in (	WITH 
    split_string AS (
		        SELECT   (select aid from B  where id = 3)AS string FROM dual
    )
SELECT 
    REGEXP_SUBSTR(string, '[^,]+', 1, LEVEL) AS aid
FROM 
    split_string
CONNECT BY
    REGEXP_SUBSTR(string, '[^,]+', 1, LEVEL) IS NOT NULL)

將A表的名稱轉(zhuǎn)成一行

select LISTAGG(name,',') WITHIN GROUP (ORDER BY name) 關(guān)聯(lián)流程 from A where  id in (	WITH 
    split_string AS (
        SELECT   (select aid from B  where id = 3)AS string FROM dual
    )
SELECT 
    REGEXP_SUBSTR(string, '[^,]+', 1, LEVEL) AS split_value
FROM 
    split_string
CONNECT BY
    REGEXP_SUBSTR(string, '[^,]+', 1, LEVEL) IS NOT NULL) 

以上就是oracle關(guān)聯(lián)查詢報invalid number錯誤的解決方法的詳細(xì)內(nèi)容,更多關(guān)于oracle報invalid number錯誤的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 修改Oracle監(jiān)聽默認(rèn)端口號1521的方法

    修改Oracle監(jiān)聽默認(rèn)端口號1521的方法

    我們都知道,Oracle的監(jiān)聽默認(rèn)端口是1521,但是如果系統(tǒng)上1521已經(jīng)被占用或業(yè)務(wù)要求不用默認(rèn)端口,又或者是為了安全,這個時候我們就需要修改監(jiān)聽的默認(rèn)端口。下面這篇文章主要介紹了修改Oracle監(jiān)聽默認(rèn)端口號1521的方法,需要的朋友可以參考下。
    2017-01-01
  • 詳解PL/SQL Developer連接本地Oracle 11g 64位數(shù)據(jù)庫

    詳解PL/SQL Developer連接本地Oracle 11g 64位數(shù)據(jù)庫

    本篇文章主要介紹了PL/SQL Developer連接本地Oracle 11g 64位數(shù)據(jù)庫 ,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-04-04
  • Oracle 細(xì)粒度審計(FGA)初步認(rèn)識

    Oracle 細(xì)粒度審計(FGA)初步認(rèn)識

    細(xì)粒度審計(FGA),是在Oracle 9i中引入的,能夠記錄SCN號和行級的更改以重建舊的數(shù)據(jù),本文將詳細(xì)介紹,需要的朋友可以參考下
    2012-12-12
  • Oracle查詢sql錯誤信息的控制和定位

    Oracle查詢sql錯誤信息的控制和定位

    今天小編就為大家分享一篇關(guān)于Oracle查詢sql錯誤信息的控制和定位,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-12-12
  • Oracle往某表批量插入記錄的幾種實(shí)現(xiàn)方法

    Oracle往某表批量插入記錄的幾種實(shí)現(xiàn)方法

    這篇文章主要給大家介紹了關(guān)于Oracle往某表批量插入記錄的幾種實(shí)現(xiàn)方法,Oracle批量插入語句與其他數(shù)據(jù)庫不同,文中通過代碼實(shí)例介紹的非常詳細(xì),需要的朋友可以參考下
    2023-07-07
  • Oracle進(jìn)行數(shù)據(jù)庫升級和降級的操作代碼

    Oracle進(jìn)行數(shù)據(jù)庫升級和降級的操作代碼

    數(shù)據(jù)庫升級是一個復(fù)雜的過程,涉及到備份現(xiàn)有數(shù)據(jù)、安裝新版本的數(shù)據(jù)庫軟件、遷移數(shù)據(jù)和應(yīng)用程序的兼容性測試等步驟,數(shù)據(jù)庫降級通常比升級更具挑戰(zhàn)性,所以本文給大家介紹了Oracle進(jìn)行數(shù)據(jù)庫升級和降級的操作,需要的朋友可以參考下
    2024-09-09
  • oracle數(shù)據(jù)庫截取字符串substr函數(shù)使用舉例

    oracle數(shù)據(jù)庫截取字符串substr函數(shù)使用舉例

    在Oracle數(shù)據(jù)庫中可以使用SUBSTR函數(shù)來截取字符串,這篇文章主要給大家介紹了關(guān)于oracle數(shù)據(jù)庫截取字符串substr函數(shù)使用的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2025-01-01
  • Oracle使用insert觸發(fā)器遇到的問題及解決

    Oracle使用insert觸發(fā)器遇到的問題及解決

    在數(shù)據(jù)庫管理中,觸發(fā)器是重要的工具,用于實(shí)現(xiàn)自動化操作和數(shù)據(jù)完整性維護(hù),本文以一個實(shí)際案例詳解觸發(fā)器的基本語句和應(yīng)用,在導(dǎo)入個人信息時,如果已存在該信息且需更新非導(dǎo)入項(xiàng)(如疫情信息),觸發(fā)器通過比較:new與:old屬性值實(shí)現(xiàn)自動同步
    2024-10-10
  • ORACLE 數(shù)據(jù)庫RMAN備份恢復(fù)

    ORACLE 數(shù)據(jù)庫RMAN備份恢復(fù)

    還原不同位置的數(shù)據(jù)庫
    2009-04-04
  • Oracle?11g+windows?環(huán)境下Ecology7系統(tǒng)安裝過程

    Oracle?11g+windows?環(huán)境下Ecology7系統(tǒng)安裝過程

    這篇文章主要介紹了Oracle?11g+windows?環(huán)境下Ecology7系統(tǒng)安裝,安裝步驟是以管理員模式運(yùn)行Oracle setup.exe文件,根據(jù)提示安裝Oracle,創(chuàng)建數(shù)據(jù)庫,注意修改連接數(shù),本文給大家詳細(xì)講解,需要的朋友可以參考下
    2022-10-10

最新評論