0

以下是使用 SQL*Plus 更新客户名称的片段。它适用于所有客户,但名称包含“&”符号的客户除外,即使名称是“封闭的”。

sqlplus -s $user/$pass@$db << EOF
UPDATE order_address SET name = '$customer_name' WHERE address_type = '2' AND order_number = '$order_number';
COMMIT;
EXIT;
EOF

应该怎么做才能使它对名称中包含“&”的客户也有效?

更新:它似乎确实有效,但只要有一个 '&' 它就会放 'COMMIT;' 所以名称显示为'A COMMIT; B'而不是'A&B'。

4

1 回答 1

2

你可以试试“SET DEFINE OFF”吗?

SQL> SET SERVEROUTPUT ON
SQL> SET DEFINE OFF
SQL> BEGIN
  2  DBMS_OUTPUT.PUT_LINE('A&B');
  3  END;
  4  /
A&B

PL/SQL procedure successfully completed.
于 2013-11-07T15:00:20.350 回答