Хранимая процедура. T-sql в pl / sql - PullRequest
1 голос
/ 07 августа 2011

Здравствуйте, есть кто-нибудь, кто знает, как преобразовать следующую хранимую процедуру t-sql в pl / sql:

ALTER FUNCTION [dbo].[AverageAndTall]()
    RETURNS @Players TABLE
    (
        Number INT,
        Name VARCHAR(20),
        Surname VARCHAR(40),
        Height float,
        Position VARCHAR(40),
        FuzzinessLevel float(3)
    )
AS
BEGIN
    DECLARE  @FuzzyLevel float
    INSERT   @Players (Number, Name, Surname, Height, Position, FuzzinessLevel)
    SELECT   Number, Name, Surname, Height, Position, dbo.MembershipLevel_AverageAndTall(Height) 
    FROM     FuzzyFootballTeam       
    RETURN
END

Спасибо за любые подсказки!

1 Ответ

2 голосов
/ 07 августа 2011

У вас есть табличная пользовательская функция.Один из способов преобразовать это в PL / SQL - использовать функцию, возвращающую REF CURSOR.Поскольку некоторые определения типов задействованы, лучше поместить их в пакет:

CREATE OR REPLACE PACKAGE FootballTeam
IS

  TYPE AverageAndTallResult IS RECORD (
    NMBR INT,
    NAME VARCHAR2(20),
    SURNAME VARCHAR2(40),
    HEIGHT NUMBER,
    POSITION VARCHAR2(40),
    FUZZINESS_LEVEL NUMBER );

  TYPE AverageAndTallCursor IS REF CURSOR RETURN AverageAndTallResult;

  FUNCTION AverageAndTall
    RETURN AverageAndTallCursor;

END FootballTeam;
/

CREATE OR REPLACE PACKAGE BODY FootballTeam
IS

  FUNCTION AverageAndTall
    RETURN AverageAndTallCursor
  IS

    l_cursor AverageAndTallCursor;

  BEGIN

    OPEN l_cursor FOR
    SELECT  Number, Name, Surname, Height, Position, MembershipLevel_AverageAndTall(Height) 
    FROM    FuzzyFootballTeam;

    RETURN l_cursor;

  END AverageAndTall;

END FootballTeam;
/
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...