2012-06-07 3 views
1

Firebird 및 SQL Server에 데이터베이스가 있습니다. Firebird에서 저장 프로 시저를 작업하고 있습니다.Firebird에서 SQL Server로 저장 프로 시저 이동

질문 : T-SQL 구문으로 변환하는 방법은 무엇입니까?

begin 
    IF ((:PHONE_N is NULL) or (STRLEN(:PHONE_N)<1)) THEN 
    BEGIN 
     O_PHONE_N = NULL; 
     EXIT; 
    END 

    IF (STRLEN(PHONE_N) > 3) THEN 
    BEGIN 
     O_PHONE_N = '(' || SUBSTR(:PHONE_N, 1, 3) || ') '; 
     PHONE_N = SUBSTR(:PHONE_N, 4, STRLEN(:PHONE_N)); 
     IF (STRLEN(:PHONE_N)> 3) THEN 
     begin 
      O_PHONE_N = O_PHONE_N || SUBSTR(:PHONE_N, 1, 3); 
      PHONE_N = SUBSTR(:PHONE_N, 4, STRLEN(:PHONE_N)); 
      IF (STRLEN(:PHONE_NUMBER)> 0) THEN 
      O_PHONE_N = O_PHONE_N || '-' ||:PHONE_N; 
     END 
     ELSE 
     O_PHONE_N = :O_PHONE_N || :PHONE_N; 
    END 
    ELSE 
    O_PHONE_N = :PHONE_N; 
end 
+0

나는 T-SQL로이 절차를 번역 몇 가지 문제가 있습니다. 작동하지 않습니다 ... 구문에 대한 테이블이있을 수 있습니까? – user1441614

답변

2

이 링크는 약간의 도움이 될 수 있습니다 : 이것은 조금 도움이 될 http://www.firebirdsql.org/manual/migration-mssql-syntax.html

:

  • @을 선도하는 (예 @phone_n)
  • STRLENLEN()을 호출되는 T-SQL 변수를 표시 T-SQL에서
  • SUBSTR은입니다. T-SQL 구문에 대한 자세한 내용은

Check out the excellent MSDN documentation on T-SQL

+1

또한 : 문자열 연결은'|| '가 아니라'+'로 이루어집니다. –

+0

Thx. 이제는 이미 작동합니다! – user1441614