Reverse Word [message #346172] |
Sat, 06 September 2008 23:43  |
shahzad-ul-hasan
Messages: 643 Registered: August 2002
|
Senior Member |
|
|
Word: "WELCOMETOPAKISTAN"
i need this word in reverse order or it can be written in reverse order like that:
"NATSIKAPOTEMOCLEW"
PLS SEND ME THE query;
regards
Shahzad
|
|
|
|
|
|
|
|
Re: Reverse Word [message #346186 is a reply to message #346185] |
Sun, 07 September 2008 02:49   |
shahzad-ul-hasan
Messages: 643 Registered: August 2002
|
Senior Member |
|
|
declare
a number;
begin
select length(a1) into a from dual;
select substr(:t,a,-a) from dual;
end;
this is whta i have used.pls advised and made correction in that.
|
|
|
|
|
|
Re: Reverse Word [message #346198 is a reply to message #346174] |
Sun, 07 September 2008 04:26   |
Frank
Messages: 7901 Registered: March 2000
|
Senior Member |
|
|
Michel Cadot wrote on Sun, 07 September 2008 10:25 |
We don't spoonfeed the lazy.
|
Michel Cadot wrote on Sun, 07 September 2008 07:15 | SQL> select reverse('WELCOMETOPAKISTAN') from dual;
REVERSE('WELCOMET
-----------------
NATSIKAPOTEMOCLEW
1 row selected.
Regards
Michel
|
Say what?
|
|
|
|
|
|
Re: Reverse Word [message #346320 is a reply to message #346186] |
Mon, 08 September 2008 03:38   |
JRowbottom
Messages: 5933 Registered: June 2006 Location: Sunny North Yorkshire, ho...
|
Senior Member |
|
|
As a good piece fo advice, Oracle is not SQL Server.
In oracle, you don't need to use a Select to populate a variable.
Instead of select length(a1) into a from dual you should write It will execute much faster.
|
|
|
|
Re: Reverse Word [message #346339 is a reply to message #346172] |
Mon, 08 September 2008 04:44   |
pointers
Messages: 451 Registered: May 2008
|
Senior Member |
|
|
I guess this helps You.
SQL> ed
Wrote file afiedt.buf
1 create or replace procedure mine_reverse(a in varchar2) as
2 another varchar2(20);
3 begin
4 for d in 1..length(a) loop
5 another:=another||substr(a,-d,1);
6 end loop;
7 dbms_output.put_line('here is reverse '||another);
8* end;
SQL> /
Procedure created.
SQL> execute mine_reverse('Pointers');
here is sretnioP
PL/SQL procedure successfully completed.
Regards,
Pointers.
|
|
|
Re: Reverse Word [message #346343 is a reply to message #346339] |
Mon, 08 September 2008 05:15   |
Frank
Messages: 7901 Registered: March 2000
|
Senior Member |
|
|
pointers wrote on Mon, 08 September 2008 11:44 | I guess this helps You.
7 dbms_output.put_line('here is reverse '||another);
8* end;
SQL> /
Procedure created.
SQL> execute mine_reverse('Pointers');
here is sretnioP
PL/SQL procedure successfully completed.
|
Output faked. (Missing "reverse")
|
|
|
Re: Reverse Word [message #346346 is a reply to message #346343] |
Mon, 08 September 2008 05:26   |
pointers
Messages: 451 Registered: May 2008
|
Senior Member |
|
|
Frank wrote on Mon, 08 September 2008 05:15 | pointers wrote on Mon, 08 September 2008 11:44 | I guess this helps You.
7 dbms_output.put_line('here is reverse '||another);
8* end;
SQL> /
Procedure created.
SQL> execute mine_reverse('Pointers');
here is sretnioP
PL/SQL procedure successfully completed.
|
Output faked. (Missing "reverse")
|
Now check this..
SQL> set serveroutput on;
SQL> execute mine_reverse('pointers');
here is reverse sretniop
PL/SQL procedure successfully completed.
|
|
|
Re: Reverse Word [message #346353 is a reply to message #346339] |
Mon, 08 September 2008 05:42   |
 |
Michel Cadot
Messages: 68737 Registered: March 2007 Location: Saint-Maur, France, https...
|
Senior Member Account Moderator |
|
|
@pointers
Don't put solution only hint or clue as requested in OraFAQ Forum Guide, "Responding to Posts" section:
Quote: | When responding to questions, if it is obviously a student with a homework assignment or someone else just learning, especially in the homework and newbies forums, it is usual to provide hints or clues, perhaps links to relevant portions of the documentation, or a similar example, to point them in the right direction so that they will research and experiment on their own and learn, and not provide complete solutions to problems. In cases where someone has a real-life complex work problem, or at least it may seem complex to them, it may be best to provide a complete demo and explanation.
|
|
|
|
|
|
|
|
Re: Reverse Word [message #346718 is a reply to message #346708] |
Tue, 09 September 2008 08:50   |
JRowbottom
Messages: 5933 Registered: June 2006 Location: Sunny North Yorkshire, ho...
|
Senior Member |
|
|
you could go for the 'over the top' approach:with src as (select 'Pointers' word from dual)
select regexp_replace(xmlagg(letter),'<[^>]+>',null,1,0)
from (
select xmlelement("X",substr(word,level,1)) letter from src connect by level <= length(word) order by level desc
);
Can anyone do it using the Model clause?
|
|
|
|
Re: Reverse Word [message #346740 is a reply to message #346718] |
Tue, 09 September 2008 10:06   |
 |
Michel Cadot
Messages: 68737 Registered: March 2007 Location: Saint-Maur, France, https...
|
Senior Member Account Moderator |
|
|
Not with model but good old connect by:
SQL> with
2 data as ( select 'Pointers' word from dual ),
3 letters as (
4 select substr(word,length(word)-level+1,1) letter, level rank, length(word) last
5 from data
6 connect by level <= length(word)
7 )
8 select replace(sys_connect_by_path(letter,'/'),'/','') "Reverse"
9 from letters
10 where level = last
11 connect by prior rank = rank - 1
12 start with rank = 1
13 /
Reverse
-----------------------------------------------------------------
sretnioP
1 row selected.
By the way, why "Pointers"?
Regards
Michel
[Updated on: Tue, 09 September 2008 10:09] Report message to a moderator
|
|
|
|
Re: Reverse Word [message #346745 is a reply to message #346718] |
Tue, 09 September 2008 10:27   |
 |
Michel Cadot
Messages: 68737 Registered: March 2007 Location: Saint-Maur, France, https...
|
Senior Member Account Moderator |
|
|
And with model:
SQL> with
2 data as ( select 'Pointers' word, rownum rn from dual )
3 select r "Reverse"
4 from data
5 model
6 dimension by (rn)
7 measures (word, cast(null as varchar2(100)) r)
8 rules
9 iterate (100) until (substr(word[1],iteration_number+1,1) is null)
10 ( r[1] = substr(word[1],iteration_number+1,1) || r[1] )
11 /
Reverse
-------------------------------------------------------------------------
sretnioP
1 row selected.
Regards
Michel
[Updated on: Tue, 09 September 2008 10:29] Report message to a moderator
|
|
|
|
Re: Reverse Word [message #346838 is a reply to message #346215] |
Tue, 09 September 2008 17:50   |
scottwmackey
Messages: 515 Registered: March 2005
|
Senior Member |
|
|
Well, knock me over with a feather. I had no idea REVERSE wasn't documented. We have several functional indexes in our app that use reverse. Now we have to decide if we want to do something else with them.
|
|
|
|
|
Re: Reverse Word [message #347411 is a reply to message #346732] |
Thu, 11 September 2008 09:46   |
JRowbottom
Messages: 5933 Registered: June 2006 Location: Sunny North Yorkshire, ho...
|
Senior Member |
|
|
Thanks for the compliment, but there are several regular posters here who know significantly more than I do.
|
|
|
Re: Reverse Word [message #347448 is a reply to message #347411] |
Thu, 11 September 2008 12:23  |
 |
Littlefoot
Messages: 21823 Registered: June 2005 Location: Croatia, Europe
|
Senior Member Account Moderator |
|
|
JRowbottom | There are several regular posters here who know significantly more than I do.
|
Regular posters? Several? Significantly? I don't think so.
However, I've seen several irregulars who are capable of producing extraordinary solutions. Too bad they don't spend more time here, but - perhaps most of our problems are just too simple for them.
|
|
|