Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 插入、选择、删除值_Sql_Database_Oracle - Fatal编程技术网

Sql 插入、选择、删除值

Sql 插入、选择、删除值,sql,database,oracle,Sql,Database,Oracle,我有这样的桌子:- (BL_用户) 像这样的桌子:- (BL_订户包) 我想用BL\u订户包中的MSISDN来填充表BL\u订户 同时,我想用任何数据填充其他列(非空), 我尝试了以下方法 insert into BL_SUBSCRIBER ( MSISDN, SUBSCRIBER_ID, SUB_TYPE, LANGUAGE) values ( select MSISDN from BL_SUBSCRIBER_PACKAGE, sub_id_seq.nextval, //sub_id_se

我有这样的桌子:- (BL_用户)

像这样的桌子:-

(BL_订户包)

我想用BL\u订户包中的MSISDN来填充表BL\u订户 同时,我想用任何数据填充其他列(非空), 我尝试了以下方法

insert into BL_SUBSCRIBER (
MSISDN,
SUBSCRIBER_ID,
SUB_TYPE,
LANGUAGE)
values (
select MSISDN from BL_SUBSCRIBER_PACKAGE,
sub_id_seq.nextval,   //sub_id_seq is a sequence already defined.
'prepaid',
'EN')
但它给了我错误(缺少表达式) 那么,有谁能告诉我如何将数据从一个表复制到另一个表并插入所需的默认数据(在本例中,它是必须的,因为它不是NULL)。 PS:我正在使用Oracle数据库
谢谢。

当您使用
选择
作为
插入的源时
不需要

insert into BL_SUBSCRIBER (MSISDN,SUBSCRIBER_ID,SUB_TYPE,LANGUAGE)
select MSISDN 
       sub_id_seq.nextval, 
       'prepaid',
       'EN'
from BL_SUBSCRIBER_PACKAGE;
与往常一样,手册中记录了正确的语法:

还有一个例子:
试试看

insert into BL_SUBSCRIBER (MSISDN,SUBSCRIBER_ID,SUB_TYPE,LANGUAGE)
    select
        MSISDN,
        sub_id_seq.nextval,   //sub_id_seq is a sequence already defined.
        'prepaid',
        'EN'
    from BL_SUBSCRIBER_PACKAGE;

另外,请查看下面的@a_horse_with_no_name answer,以获得一些有用的Oracle文档链接-

感谢您的反馈,我尝试了类似的方法,但它给我的值不够,@IbrahimSalama:那么您没有向我们展示您运行的代码。
insert
列表中的列数必须与
select
列表中的列数相匹配(正如我的回答中所做的)@DarkSide感谢您的关注,我尝试了以下方法,但它没有给我足够的值
CREATE SEQUENCE sub_id_seq MINVALUE 1以1递增1 NOCACHE开始;插入bl_订户(MSISDN、订户ID、子类型、LANG、时间限制标志、评级计划、漫游音量限制、最终漫游阈值动作、漫游标志)选择MSISDN,至bl_订户包中的字符(子ID顺序、下一个字符),'10','EN','N',10240,1',N'@IbrahimSalama-这与问题明显不同;但它有九列,只有八个表达式。正如错误所暗示的那样。数一数条件。还有,为什么要将序列值设置为字符串?@DarkSide因为订阅服务器id在数据库中定义为字符串,谢谢,我感谢您的帮助。@DarkSide查询现在运行正常,但它不接受序列号
,你能告诉我如何在每一行生成一个唯一的id吗?@a_horse_和_no_name我不知道为什么SQLFiddle说SQL命令没有正确结束,但是
插入到t(…)选择。。。FROM t2
是正确的语法。
insert into BL_SUBSCRIBER (MSISDN,SUBSCRIBER_ID,SUB_TYPE,LANGUAGE)
select MSISDN 
       sub_id_seq.nextval, 
       'prepaid',
       'EN'
from BL_SUBSCRIBER_PACKAGE;
insert into BL_SUBSCRIBER (MSISDN,SUBSCRIBER_ID,SUB_TYPE,LANGUAGE)
    select
        MSISDN,
        sub_id_seq.nextval,   //sub_id_seq is a sequence already defined.
        'prepaid',
        'EN'
    from BL_SUBSCRIBER_PACKAGE;