gpt4 book ai didi

oracle - 具有多个 IN 参数的存储过程

转载 作者:行者123 更新时间:2023-12-04 04:34:03 24 4
gpt4 key购买 nike

我得到了以下程序:

create or replace PROCEDURE create_indexes 
(tbl_name_index IN VARCHAR2,
tbl_name_vehicle IN VARCHAR2,
tbl_name_dealer IN VARCHAR2,
tbl_name_hst IN VARCHAR2,
tbl_name_dms IN VARCHAR2,
tbl_name_usertype IN VARCHAR2,
tbl_name_search IN VARCHAR2) as

COUNT_INDEXES INTEGER;
BEGIN
SELECT COUNT(*)
INTO COUNT_INDEXES
FROM USER_INDEXES
WHERE table_name = tbl_name_index and index_name not like '%UNIQUE%';

IF COUNT_INDEXES <= 0 THEN
EXECUTE IMMEDIATE 'COMMAND';


end If;
end;

如您所见,定义了多个参数。我的问题是,如何使用多个输入执行此过程?

最佳答案

从 SQL 工作表中,从 anonymous block 调用您的过程:

begin
create_indexes (
tbl_name_index => 'TABLE_NAME',
tbl_name_vehicle => 'Vehicle name',
tbl_name_dealer => 'value 3',
tbl_name_hst => 'value 4',
tbl_name_dms => 'value 5',
tbl_name_usertype => 'value 6',
tbl_name_search => 'value 7');
end;
/

正如 Jeffrey Kemp 所指出的,使用命名参数表示法而不是位置表示法是个好主意;它使它更清晰,有助于避免错误(尤其是参数顺序错误),可以减少对过程的 future 更改的影响,并且当您有具有默认值的参数时更灵活 - 因此您可以跳过任何您没有的想要明确设置。

您也可以使用 execute command作为一种快捷方式,但有很多参数可能更容易坚持匿名块 - 无论如何,它都是一样的。许多 SQL*Plus 文档也适用于 SQL Developer。

SQL Developer 文档还有 shows you how to execute and debug a procedure .

如果这是您第一次接触 PL/SQL,那么可能值得查看 documentation .我不确定你所展示的代码会去哪里;好像有点糊涂了。在 PL/SQL 中创建像索引这样的对象是不寻常的,因为它们应该在模式创建或更新时构建一次,因此将其作为可重用代码似乎没有意义。

关于oracle - 具有多个 IN 参数的存储过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20067817/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com