我有以下示例代码
DECLARE
myRow table%rowtype
myVar table2.column%type
BEGIN
SELECT table.col1, table.col3, table.col4, table2.column
INTO myRow
FROM table
JOIN table2
On table.col6 = table2.col1;
END;
我如何重构才能使其成为有效的语句?我可以以某种方式将连接的列存储到 myRow 或 myVar 上吗?
您的 PL/SQL 是有效且可接受的,前提是:
- 表 TABLE 恰好包含 4 列,对应于您选择的 4 个值。
- 该查询将恰好返回 1 行。
如果表 TABLE 不包含正好 4 列,那么您需要选择其他内容,也许只包含 4 个变量:
DECLARE
v_col1 table.col1%type;
v_col3 table.col3%type;
v_col4 table.col4%type;
v_column table2.column%type;
BEGIN
SELECT table.col1, table.col3, table.col4, table2.column
INTO v_col1, v_col3, v_col4, v_column
FROM table
JOIN table2
On table.col6 = table2.col1;
END;
如果您的查询返回超过 1 行,您将收到 TOO_MANY_ROWS 异常;如果它没有返回任何行,您将得到一个 NO_DATA_FOUND 异常。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)