亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

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

oracle進(jìn)行關(guān)聯(lián)查詢的時(shí)候因?yàn)樽侄?strong>存在多個(gè)用逗號(hào)切割的id,導(dǎo)致查詢的過程中報(bà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)椴樵冞^程中,多個(gè)id放在了一個(gè)字段,這個(gè)字段不止有數(shù)字也有逗號(hào),id是數(shù)字類型,所以數(shù)據(jù)庫(kù)識(shí)別以后直接會(huì)報(bào)非法數(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)查詢報(bào)invalid number錯(cuò)誤的解決方法的詳細(xì)內(nèi)容,更多關(guān)于oracle報(bào)invalid number錯(cuò)誤的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

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

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

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

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

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

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

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

    Oracle查詢sql錯(cuò)誤信息的控制和定位

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

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

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

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

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

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

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

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

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

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

    還原不同位置的數(shù)據(jù)庫(kù)
    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ù)庫(kù),注意修改連接數(shù),本文給大家詳細(xì)講解,需要的朋友可以參考下
    2022-10-10

最新評(píng)論