PL/SQL interpolation
4 отговора
135 прегледа
PL/SQL interpolation
Здравейте, имам следният въпрос:
имам заявката:
select warehouseName from wrh
която ми връща резултат, но името на колоната се казва warehouseName
Искам това да го променя и да си ми връща нещо по-user friendly
Имам функция GetCurrWrhName, която ми връща резултат от тип VARCHAR2 и искам резултатът от тази функция да ми бъде ИМЕ на колоната
тоест да се интерполира функцията. Правя това:
select warehouseName package_name.GetCurrWrhName from wrh
но ми дава грешка ORA-00923 - From keyword not found where expected
select warehouseName as package_name.GetCurrWrhName from wrh
ми връща същото
Как да го направя така, че името на колоната да ми бъде върнатия от функцията стринг ?
имам заявката:
select warehouseName from wrh
която ми връща резултат, но името на колоната се казва warehouseName
Искам това да го променя и да си ми връща нещо по-user friendly
Имам функция GetCurrWrhName, която ми връща резултат от тип VARCHAR2 и искам резултатът от тази функция да ми бъде ИМЕ на колоната
тоест да се интерполира функцията. Правя това:
select warehouseName package_name.GetCurrWrhName from wrh
но ми дава грешка ORA-00923 - From keyword not found where expected
select warehouseName as package_name.GetCurrWrhName from wrh
ми връща същото
Как да го направя така, че името на колоната да ми бъде върнатия от функцията стринг ?
Re: PL/SQL interpolation
щом си го пробвал в статичен SQL и не може, явно не може
а ако си толкова на зор, има Native Dynamic SQL и DBMS_SQL - ползвай което ти душа желае
а ако си толкова на зор, има Native Dynamic SQL и DBMS_SQL - ползвай което ти душа желае
Re: PL/SQL interpolation
e tova nqma li da ti svyrshi rabota:
select package_name.GetCurrWrhName(warehouseName) from wrh
Kakyv e smisyla da go slagash tova ime kato alias?
Ako ti trqbva i imeto otdelno, togava napravi taka:
select warehouseName, package_name.GetCurrWrhName(warehouseName) from wrh
select package_name.GetCurrWrhName(warehouseName) from wrh
Kakyv e smisyla da go slagash tova ime kato alias?
Ako ti trqbva i imeto otdelno, togava napravi taka:
select warehouseName, package_name.GetCurrWrhName(warehouseName) from wrh
Re: PL/SQL interpolation
До колкото успях да разбера, ти искаш да изведеш като резултат, някое по-разбираемо име на колоната warehouseName, което име ти се връща от функцията package_name.GetCurrWrhName. В такъв случай отговорът, според мен, е точно DYNAMIC SQL.
Примерно, тъй като не знам от къде я изпъняваш заявката, ще дам примера с PL/SQL:
l_string := ' select warehouseName as ' || package_name.GetCurrWrhName || ' from wrh ';
execute immediate l_string;
Или нещо такова , с което да можеш предварително да вземеш името на колоната което искаш да се вижда!
Защо да правим нещата лесно...
Примерно, тъй като не знам от къде я изпъняваш заявката, ще дам примера с PL/SQL:
l_string := ' select warehouseName as ' || package_name.GetCurrWrhName || ' from wrh ';
execute immediate l_string;
Или нещо такова , с което да можеш предварително да вземеш името на колоната което искаш да се вижда!
Защо да правим нещата лесно...
Re: PL/SQL interpolation
Greshno sym razbral vyprosa, tak che otmenqm predishniq si post 