PL / SQL:将表和列名称作为参数的过程

时间:2018-02-01 23:13:31

标签: plsql oracle11g parameter-passing procedure tablename

我想在PL \ SQL中编写一个过程,它会将特殊字符(在下面的示例中:哈希)更改为先前声明的字符(在下面的示例中:下划线)。该过程应采用表名和列名作为参数。我编写了这样的代码,然而,它不起作用:

{{1}}

任何帮助将不胜感激

1 个答案:

答案 0 :(得分:3)

您在IS之前错过了BEGIN,而且您的字符串中的引号太多了:

create or replace procedure change_chars(table_name in varchar2, column_name in varchar2) is
begin
    execute immediate 'update ' || table_name ||
    ' set ' || column_name || ' = replace(' || column_name ||', ''#'', ''_'')';
end;

要处理带引号的字符串,您可以改为使用enter image description here

' set ' || column_name || ' = replace(' || column_name || q'[, '#', '_')]';