sql - 返回具有替换值和游标的值列表
问题描述
当你写一个大陆的名字时,我必须编写一个返回国家列表的代码。当然,这些国家必须在那个大陆之内。返回该列表时,表 PAISES 中的 VISUALIZADO 列将更新为值“是”。必须使用游标。因为我的老师要我们这样做,所以名字是西班牙语的,但是这些词很容易理解。本练习的两个表如下:
CREATE TABLE PAISES (
COD_PAIS NUMBER(3),
NOMBRE VARCHAR2(30),
COD_CONTINENTE NUMBER(3),
VISUALIZADO VARCHAR2(2)
);
CREATE TABLE CONTINENTES (
COD_CONTINENTE NUMBER(3),
NOMBRE VARCHAR2(30)
);
我写的是:
SET SERVEROUTPUT ON;
DECLARE
v_ncont continentes.nombre%TYPE := &nombre_continente;
v_codcont continentes.cod_continente%TYPE;
cursor listado_paises is
select cod_pais, nombre, cod_continente, visualizado
from paises;
BEGIN
if v_ncont = continentes.nombre THEN
UPDATE paises
SET visualizado = 'Si'
WHERE paises.cod_continente = continentes.cod_continente;
END if;
END;
显然它不起作用,但我不知道该怎么办!提前致谢 :)
解决方案
您应该在循环中使用光标。你能试试这个
SET SERVEROUTPUT ON;
DECLARE
v_ncont continentes.nombre%TYPE := &nombre_continente;
v_codcont continentes.cod_continente%TYPE;
cursor listado_paises is
select cod_pais, nombre, cod_continente, visualizado
from paises;
BEGIN
for l in listado_paises
loop
if v_ncont = l.nombre THEN
UPDATE paises
SET visualizado = 'Si'
WHERE paises.cod_continente = l.cod_continente;
END if;
end loop;
END;
推荐阅读
- r - 如何将 Youtube 视频插入闪亮的应用程序?
- php - Laravel 8 迁移工作,但 MySQL 拒绝连接
- jpa - 如何避免 JPA 持久化直接插入数据库?
- php - 我想根据数据库中的记录限制底部的页码分页。我给出了条件,但它不起作用。请检查一下
- javascript - 从导入的 React 组件访问变量
- java - 在java aws lamba中使用rest Temple调用另一个第3方rest api时连接超时
- google-cloud-platform - 如何从 Google Cloud Source Repository 克隆特定分支
- spring - 带有 EST 区域的 Spring Scheduled 注释,不起作用
- r - 按一列分组,并从其他列中选择相应的行值
- android - firebase 无法解析 android 应用程序模块的 gradle 配置