Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在TeraData中执行存储过程_C#_Teradata_Teradata Sql Assistant - Fatal编程技术网

C# 如何在TeraData中执行存储过程

C# 如何在TeraData中执行存储过程,c#,teradata,teradata-sql-assistant,C#,Teradata,Teradata Sql Assistant,我在Teradata-sqlassistant 但是,我不能执行它。它有5个参数,我只需要传递3个参数作为输入 REPLACE PROCEDURE proc_store_import ( IN P1_PROC_TYPE VARCHAR(20), IN P2_zone_name VARCHAR(20), IN P3_Location_code INT, IN P4_RolloutDate VARCHAR(20), IN P5_Phase INT ) BEGIN declare O1_In

我在
Teradata-sqlassistant

但是,我不能执行它。它有5个参数,我只需要传递3个参数作为输入

REPLACE PROCEDURE proc_store_import
(
IN P1_PROC_TYPE VARCHAR(20),
IN P2_zone_name VARCHAR(20),
IN P3_Location_code INT,
IN P4_RolloutDate VARCHAR(20),
IN P5_Phase INT
)

BEGIN
    declare O1_InsertStatus VARCHAR(250);
    IF P1_PROC_TYPE = 'ADD-STORE' THEN   
        IF( ( SELECT Count(*)   FROM dim_location WHERE location_code = P3_Location_code) >0 ) THEN     
            SET O1_InsertStatus =  'Requested Store is already a  Store...!!!';
        ELSE    
            INSERT INTO  dim_location
            (location_code, location_name, store_zone, region, area, opening_date, closing_date, isactive, dc_code,
            city,dc_city,location_type,catchment,emailid,circle,business_zone,cluster_name,store_cluster,ofine_code,
            region,new_date,rollout_Phase,createdDate,createdBy)

            SELECT  location_code, store_name, zone_name, region, area, opening_date, closing_date, isactive, dc_code,
            city,dc_city,location_type,catchment,emailid,circle,business_zone,cluster_name,store_cluster,ofine_code,
            region,P4_RolloutDate AS new_date,P5_Phase AS rollout_Phase,CURRENT_DATE AS createdDate,1 AS createdBy
            FROM    dim_location
             WHERE location_code = P3_Location_code; 

            SET O1_InsertStatus =  'Store included to  Store...!!!';
        END IF;
    END IF;
END;

只需为缺少的参数传递空值:

CALL proc_store_import( 'foo', 'bar', 42 , NULL ,NULL)
REPLACE MACRO mac_store_import
 (
   P1_PROC_TYPE VARCHAR(20),
   P2_zone_name VARCHAR(20),
   P3_Location_code INT,
   P4_RolloutDate VARCHAR(20),
   -- P4_RolloutDate VARCHAR(20) DEFAULT '',
   P5_Phase INT
 ) 
AS 
(
  CALL proc_store_import( 
     :P1_PROC_TYPE, 
     :P2_zone_name,
     :P3_Location_code,
     :P4_RolloutDate,
     :P5_Phase);
);

EXEC mac_store_import 
 ( P1_PROC_TYPE = 'foo',
   P3_Location_code = 42,
   P2_zone_name = 'bar'
 );
还可以将其包装在宏中(具有可选默认值),然后可以使用命名参数:

CALL proc_store_import( 'foo', 'bar', 42 , NULL ,NULL)
REPLACE MACRO mac_store_import
 (
   P1_PROC_TYPE VARCHAR(20),
   P2_zone_name VARCHAR(20),
   P3_Location_code INT,
   P4_RolloutDate VARCHAR(20),
   -- P4_RolloutDate VARCHAR(20) DEFAULT '',
   P5_Phase INT
 ) 
AS 
(
  CALL proc_store_import( 
     :P1_PROC_TYPE, 
     :P2_zone_name,
     :P3_Location_code,
     :P4_RolloutDate,
     :P5_Phase);
);

EXEC mac_store_import 
 ( P1_PROC_TYPE = 'foo',
   P3_Location_code = 42,
   P2_zone_name = 'bar'
 );

顺便说一句,您当前的SQL也可以直接作为宏写入。

只需为缺少的参数传递空值:

CALL proc_store_import( 'foo', 'bar', 42 , NULL ,NULL)
REPLACE MACRO mac_store_import
 (
   P1_PROC_TYPE VARCHAR(20),
   P2_zone_name VARCHAR(20),
   P3_Location_code INT,
   P4_RolloutDate VARCHAR(20),
   -- P4_RolloutDate VARCHAR(20) DEFAULT '',
   P5_Phase INT
 ) 
AS 
(
  CALL proc_store_import( 
     :P1_PROC_TYPE, 
     :P2_zone_name,
     :P3_Location_code,
     :P4_RolloutDate,
     :P5_Phase);
);

EXEC mac_store_import 
 ( P1_PROC_TYPE = 'foo',
   P3_Location_code = 42,
   P2_zone_name = 'bar'
 );
还可以将其包装在宏中(具有可选默认值),然后可以使用命名参数:

CALL proc_store_import( 'foo', 'bar', 42 , NULL ,NULL)
REPLACE MACRO mac_store_import
 (
   P1_PROC_TYPE VARCHAR(20),
   P2_zone_name VARCHAR(20),
   P3_Location_code INT,
   P4_RolloutDate VARCHAR(20),
   -- P4_RolloutDate VARCHAR(20) DEFAULT '',
   P5_Phase INT
 ) 
AS 
(
  CALL proc_store_import( 
     :P1_PROC_TYPE, 
     :P2_zone_name,
     :P3_Location_code,
     :P4_RolloutDate,
     :P5_Phase);
);

EXEC mac_store_import 
 ( P1_PROC_TYPE = 'foo',
   P3_Location_code = 42,
   P2_zone_name = 'bar'
 );

顺便说一句,您当前的SQL也可以直接作为宏写入。

只需为缺少的参数传递NULL。举个例子,我尝试过类似的方法,但没有成功。
调用proc\u store\u import('foo','bar',42,NULL,NULL)
有效的将其作为答案写入ill mark as answer并向上投票它意味着为缺少的参数传递NULL。举个例子,我尝试过类似的方法,但不起作用
调用proc_store_import('foo','bar',42,NULL,NULL)
有效的将其作为答案写入ill mark as answer并向上投票