Plsql PLS-00103:遇到符号“;G“输出”;应满足以下条件之一时::=

Plsql PLS-00103:遇到符号“;G“输出”;应满足以下条件之一时::=,plsql,Plsql,当我运行此代码时,请查看下面的错误。我觉得很好。有人能帮忙吗?谢谢你 ORA-06550:第24行第7列: PLS-00103:在预期以下情况之一时遇到符号“G_输出”:=。(@%;06550.00000-“第%s行,第%s列:\n%s”您缺少终止符SQLPlus正在查看plsql块的结尾。因此,“打印g_输出”行包含在发送给plsql“编译器”的块中。编译器不知道如何处理它,也不希望看到它。这是错误。请尝试: --script2.sql --Krishan Billa ACCEPT p_mak

当我运行此代码时,请查看下面的错误。我觉得很好。有人能帮忙吗?谢谢你
ORA-06550:第24行第7列:
PLS-00103:在预期以下情况之一时遇到符号“G_输出”:=。(@%;06550.00000-“第%s行,第%s列:\n%s”

您缺少终止符SQLPlus正在查看plsql块的结尾。因此,“打印g_输出”行包含在发送给plsql“编译器”的块中。编译器不知道如何处理它,也不希望看到它。这是错误。请尝试:

--script2.sql
--Krishan Billa
ACCEPT p_make PROMPT 'ENTER MAKE OF THE CAR';
ACCEPT p_model PROMPT 'ENTER MODEL OF THE CAR';
ACCEPT p_year PROMPT 'ENTER YEAR OF THE CAR';
ACCEPT p_color PROMPT 'ENTER COLOR OF THE CAR';
VARIABLE g_output VARCHAR2(500);
DECLARE
  CURSOR allprospects
  IS
    SELECT b.cname,
      TRIM(b.cstreet),
      TRIM(b.ccity),
      TRIM(b.cprov),
      TRIM(b.cpostal)
    FROM s9.prospect a
    INNER JOIN s9.customer b
    ON(a.cname         =b.cname)
    WHERE UPPER(a.make)=UPPER('&p_make')
    AND UPPER(a.model) =UPPER('&p_model')
    AND a.cyear        ='&p_year'
    AND UPPER(a.color) =UPPER('&p_color');
BEGIN
  :g_output := '&p_make'||CHR(10);
  FOR v_prospect IN allprospects LOOP
    :g_output := :g_output||'test';
    --:g_output := :g_output || v_prospect.cname || CHR(10)|| v_prospect.ccity || CHR(10);
    --:g_output := :g_output || v_prospect.ccity ||','|| v_prospect.cprov || ' ' || v_prospect.cpostal || CHR(10);
  END LOOP;
END;
PRINT g_output;
--select make,model,cyear,color,count(*)from s9.prospect group by model,make,cyear,color;
--desc s9.prospect;
--desc s9.customer;

--JAGUAR     XL       2016 RED          2

顺便说一句,您应该在提示字符串的末尾添加一些标点和空格,例如,
“输入汽车品牌:”
,否则输入值将类似于
“输入汽车品牌”
END;
/
PRINT g_output;