Oracle
SQL 插入 … 值 (…, select(…))
我正在嘗試使用與命令
Members
相同GR_ID = 2
的命令插入 25 個使用者 user1…25:insert into MEMBERS (GR_id, username) values (2, (select username from USERS where username like 'test%'));
但得到錯誤:
- 00000 - “單行子查詢返回多於一行”
有什麼建議嗎?
在 Oracle 中使用
values
子句時,只能提供逗號分隔的值。如果
select
要從另一個表中獲取一個或多個行,則必須使用以下語法:insert into <table>(<col1>,<col2>,...,<coln>) select <col1>,<col2>,...,<coln> from ...;
在你的情況下:
insert into MEMBERS(GR_id, username) select 2, username from USERS where username like 'test%';
查詢
select username from USERS where username like 'test%'
.. 返回不止一行。如果你限制它只返回第一行,或者改寫 WHERE 子句只返回一行,你應該沒問題。