String separated by commas as input and display output
HelloI have a requirement that I have to take a string separated by commas as entry (may be in a table?) and display the output.
For example, executions should be like this:
Please enter the string separated by commas:
A, B, C, D (entries of the user)
Output must be
You entered:
A
B
C
D
How can do us in PL/SQL?
Thank you
Pramod
/* Formatted on 2012/06/12 09:22 (Formatter Plus v4.8.8) */
SELECT REGEXP_SUBSTR ('A,B,C,D', '[^,]+', 1, LEVEL) AS re
FROM DUAL
CONNECT BY LEVEL <= NVL (LENGTH (REGEXP_REPLACE ('A,B,C,D', '[^,]', NULL)), 0) + 1;
Tags: Database
Similar Questions
-
string separated by commas of lines and columns
Hello
I have several channels, for example
There are only numbers
the length of the numbers is different as well as the length of the string to a number is always different
Row1 111,112,113,114
row2 22.23
row3 1,2,3,4,5
How can I turn in the following
col1 col2
111 112,113,114
112 111,113,114
113 111,112,114
114 111,112,113
22 23
23 22
1 2,3,4,5
and so on...
None righteous, I missed the fact that the OP asked for the numbers to be removed from the list...
SQL > ed
A written file afiedt.buf
1 with t as (select ' 111,112,113,114' in the neck of double union all
2 Select "22.23 ' in any union.
3 select "1,2,3,4,5' double '.
4 )
5 --
6 end of test data
7 --
8. Select level n
9, trim ("," regexp_replace (col,'(.*?) (^|,)'|| regexp_substr (col, ' [^,] +', 1, level). » (,|$) (.*?) (($', '\1,\4')) in the neck
regexp_substr 10, (col, ' [^,] +', 1, level) in the framework
11 t
12 connect by prior col = col
13 and level<= regexp_count(col,="">=>
14 * and prior sys_guid() is not null
SQL > /.
COL N PARTY
---------- --------------- ---------------
1 2,3,4,5 1
2 2 1,3,4,5
3 3 1,2,4,5
4 4 1,2,3,5
5 5 1,2,3,4
1 112,113,114 111
2 111,113,114 112
3 111,112,114 113
4 111,112,113 114
1 23 22
2 22 23
(regular expressions less performance best, wise)
Please also note that you should not ask for your message to be marked as correct/good which is considered to be "begging for points" and is against the forum rules.
-
How to split string separated by commas and pass to the clause of the select statement
Referring to article How to divide string separated by commas, then pass to clause of a select statement, tquery that there the following plan:
Query1:
select * from emp where ename in ( select regexp_substr('SMITH,ALLEN,WARD,JONES','[^,]+', 1, level) from dual connect by regexp_substr('SMITH,ALLEN,WARD,JONES', '[^,]+', 1, level) is not null );
Base1:
Plan hash value: 4242290184 -------------------------------------------------------------------------------------------- | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | -------------------------------------------------------------------------------------------- | 0 | SELECT STATEMENT | | 1 | 133 | 7 (29)| 00:00:01 | |* 1 | HASH JOIN | | 1 | 133 | 7 (29)| 00:00:01 | | 2 | VIEW | VW_NSO_1 | 1 | 46 | 3 (34)| 00:00:01 | | 3 | HASH UNIQUE | | 1 | | 3 (34)| 00:00:01 | |* 4 | CONNECT BY WITHOUT FILTERING| | | | | | | 5 | FAST DUAL | | 1 | | 2 (0)| 00:00:01 | | 6 | TABLE ACCESS FULL | EMP | 14 | 1218 | 3 (0)| 00:00:01 | -------------------------------------------------------------------------------------------- Predicate Information (identified by operation id): --------------------------------------------------- 1 - access("ENAME"="$nso_col_1") 4 - filter( REGEXP_SUBSTR ('SMITH,ALLEN,WARD,JONES','[^,]+',1,LEVEL) IS NOT NULL)
However, the following query generates the plan I want:
Query2:
select * from emp where ename in ('SMITH','ALLEN','WARD','JONES');
Plan2:
Plan hash value: 3956160932 -------------------------------------------------------------------------- | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | -------------------------------------------------------------------------- | 0 | SELECT STATEMENT | | 4 | 348 | 3 (0)| 00:00:01 | |* 1 | TABLE ACCESS FULL| EMP | 4 | 348 | 3 (0)| 00:00:01 | -------------------------------------------------------------------------- Predicate Information (identified by operation id): --------------------------------------------------- 1 - filter("ENAME"='ALLEN' OR "ENAME"='JONES' OR "ENAME"='SMITH' OR "ENAME"='WARD')
Can I change the query1 query for plan2?
As Juliet was mentioned in the first SQL that you generate from the ENAME list that you must pass in the IN clause when executing. But in the second SQL, it passed as a static value. So first SQL must do more work. So you see a different execution plan.
But this is a work around to get what you are looking for. But I can't say it's a foolproof method. But anyway here you go.
SQL > var ename_list varchar2 (100)
SQL > exec: ename_list: = 'SMITH, ALLEN, WARD, JONES ';PL/SQL procedure successfully completed.
SQL > select *.
2 of PEM
where the 3 «,» | : ename_list | ',' like '%', | Ename | ',%';EMPNO, ENAME, JOB HIREDATE DEPTNO ID COM SAL MGR
---------- ------ --------- ---------- --------- ---------- ---------- ---------- ----------
7369 SMITH COMMITTED 7902 2975 2 APRIL 81 0 20
7499 ALLEN 7698 1600 20 FEBRUARY SALESMAN 81 300 30
7521 WARD 7698 1250 22 FEBRUARY SALESMAN 81 500 30
7566 JONES MANAGER 7839 2975 2 APRIL 81 0 20SQL > select * from table (dbms_xplan.display_cursor);
PLAN_TABLE_OUTPUT
-------------------------------------------------------------------------------------------------------
SQL_ID, 848zhvbvgf7d6, number of children 0
-------------------------------------
Select * from emp where «,» | : ename_list | ',' like '%', | Ename
|| ',%'Hash value of plan: 2872589290
--------------------------------------------------------------------------
| ID | Operation | Name | Lines | Bytes | Cost (% CPU). Time |
--------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | | | 2 (100) | |
|* 1 | TABLE ACCESS FULL | EMP | 1. 38. 2 (0) | 00:00:01 |
--------------------------------------------------------------------------Information of predicates (identified by the operation identity card):
---------------------------------------------------1 - filter(','||:ENAME_LIST||',' LIKE '%,'||") ENAME "|", %')
19 selected lines.
SQL >
-
have a column that has values separated by commas... and I'm s
Have a column that has values separated by commas... and I'm trying to separate.
I am trying to create a stored procedure... The 11g xe version. apex .and version 4...
Here is the part of the code... I can't do a procedure. causes my intervention consist with the clause...
create or replace procedure ins_adv_invoice
(mmagazine_no number, madvtno number, missueno number, varchar2, varchar2, varchar2 msalesman_code mpagenumber msection)
is
cursor cx is with testa as
(select name of the advertiser pagenumber)
Select regexp_substr (pagenumber, ' [^,] +', 1, rownum) result
the advertiser
connect by level < = length (regexp_replace (pagenumber, ' [^,] + "")) + 1
where advt_no = madvtno;
Start
for xxx CX
loop
insert into adv_invoice (magazine_no, advtno, adissue, section, opinion, salesman_code)
values (mmagazine_no, madvtno, missueno, msection, xxx.result, msalesman_code);
end loop;
end;
But when I run the present... it creates no procedure. . I receive he following error...
LINE/COL ERROR
-------- ----------------------------------------------------
5/14 PL/SQL: statement ignored
9/69 PL/SQL: ORA-00933: SQL not correctly completed command
SQL >
Still not able to understand... If anyone can help...
Thank youChange the query to swap the last two lines:
... cursor cx is with testa as (select pagenumber name from advertiser) select regexp_substr(pagenumber, '[^,]+', 1, rownum) result from advertiser where advt_no = madvtno connect by level <= length(regexp_replace(pagenumber, '[^,]+')) + 1; ...
-
Convert the string separated by commas in the rows
Dear gurus,
I want to convert the string separated by commas in the rows to insert in the collection.
for example, the string 1234,2323,23232,2343,34234
Higher up in the chain must be converted to ranks in order to insert into the table or the collection
Thanks in advance
SanjeevString in rows separated to convert the comma.
with t as ( select '1234,2323,23232,2343,34234' as txt from dual ) select REGEXP_SUBSTR (txt, '[^,]+', 1, level) from t connect by level <= length(regexp_replace(txt,'[^,]*'))+1
-
Build the string separated by commas in query with Expression box sub
Oracle 10g on Windows XP
Consider the following query:
Select batch_id, tr state_tag_seq where request_type in (select case WHEN PX = 'RETURN' AND 'TRANSFER' |) «, » || "PUBLIC TRANSIT"
WHEN PX = "RFT" THEN "TRANSIT".
ELSE 'Invalid '.
END
OF THE DOUBLE
) ;
In this case, PX is accepted to execution of the user interface.
I'm having no rows returned (all valid lines matching in DB) for the following case assessment
WHEN PX = 'RETURN' THEN 'TRANSFER '. «, » ||' Transit "(PX when is evaluated to 'RETURN')
The application works well when it px IS estimated to be "PCR" (as the evaluated expression is just a string ('TRANSIT') single, not separated by commas, as in the other case)
Hiow do rewrite this query, if it gives a correct result? In other words, I actually build the query string slot, which is assessed by the external when query clause.
I think it might be a specific way to use quotes in my case expression, but I'm reaching an impasse. Any help is appreciated.
Thank you
SRYou can try
select batch_id, state_tag_seq from tr where request_type member of case when px = 'RETURN' then sys.dbms_debug_vc2coll ( 'TRANSFER', 'TRANSIT' ) when px = 'RFT' then sys.dbms_debug_vc2coll ('TRANSIT') else sys.dbms_debug_vc2coll ('Invalid') end
-
Tax calculation based on the user in the box input and displaying the result.
Thanks to WhyIsThisMe for starting me on my first draft script & Jono! I'm almost there with my purchase requisition form (90% manufactured from the tutorial). Everything works except for the taxable column
I can't understand the correct syntax to check the value of the checkbox in the column taxable and then do the math for the tax based on user input in the field % tax
(total * stateTaxPercent / 100)
Essentially, I want to make the calculation only the taxable = 1, and then display the cumulative tax in the tax field.
Should I use mouseup as trigger to perform the calculation of the tax and save the result as a variable and displays the variable in the tax field? Then if another taxable box gets checked, I could add the new calculation of the variable. Not sure whether in an elegant way to get there.
?
I would put the following text in the change event of each taxable check box (in formcalc):
If ($ == 1) then
tax = tax + (amount * 0,0825)
ElseIf ($ == 0) then
tax = tax - (quantity * 0,0825)
endif
(where 'tax' is what you called your total tax box and the 'amount' is what you called your box of price).
-
How to synchronize the analog input and the output of two different USB data acquisition boards
Hi all
I have two tips very different USB NI USB 6008 case, which I use to acquire the data (analog input) and a USB of NI 9263 is a output analog only site I use to route a signal (in this case a square pulse). The reason why I use the outputs analog 6008 is because I need to deliver negative tension and need the full +/-10 v range.
Looking at similar positions, I'm pretty sure that I can't use an external trigger or a common clock, I also tried to use the timed synchronization of the structures but no cigar.
I'm including a quick vi I whipped showing how the jitters because of the lack of synchronization signal. The OD of the 9263 connects to AI in the 6008 in this example.
I talked to a specialist in the phone and tols me that's not possible.
-
create a VI that will acquire temp and pressure for 10 seconds every 500ms. The thermal strain developed and output quantity is given then:
stress = 100 * temp + 6 * pressure;
output = 500 + temp * 0.1 + pressure * 10;
draw the stress and output temperature Vs. also highlight and Vs output pressure.For the question above... I tried this method attached... Please tell me it's writing or not?
Macarius,
Because this seems to be not just a school problem, but also a review, I'm not very accurate so that I don't do your work for you.
Your program can meet the required specifications. She doesn't have a lot of understanding the power of LabVIEW. The documentation is non-existent. Style leave much to be desired.
Depending on what you are supposed to have learned, I would give it a passing beam but low grade. It could be planning a lot with relatively little effort.
Lynn
-
How to extract 3 or n - th element of a string separated by commas
Hello
Let's say I have a string "oracle, java, .net, perl, basic, html.
and I want to extract the 4th item.
Please guide me
Thanks in advanceTry this
http://nimishgarg.blogspot.com/2010/06/Oracle-nth-record-from-comma-seprated.html
for example:
SELECT REGEXP_SUBSTR(MYCOL, '[^,]+', 1, *4*) AS VAL
Of
(
SELECT 'oracle, java, .net, perl, basic, html.
AS DOUBLE MYCOL.
)Alexander gelin
http://nimishgarg.blogspot.com/ -
How to capture user input and display it in another text field
Hey there,
I create a simple screen that allows a user to enter text and I want to take what they get and appear in other fields of text on the same screen, so they do not have to retype. I'm using AS3. I read an article that gave me a few tips, but the code I use is not doing the job. I'm pretty new to Flash, so any help would be appreciated.
Here is what I use:
var Description: String;
myText_txt.addEventListener (Event.ENTER_FRAME, assignText);
function assignText(myevent:Event):void {}
Description = myText_txt.text;
}textResults_txt.text = Description;
My thoughts after reading the article (I think it's from Ned) should follow the first text field, myText_txt and assign this text to the variable Description. Then I tried to assign the variable Description to another field of text called textResults_txt. However, when I type in the first text field, nothing appears in the second.
Any ideas? Am I using the wrong method to monitor the text box?
Thank you for your time.
Stephen
You don't want to lose an ENTER_FRAME for this. You must assign an event listener for the input textfield that listens to a CHANGE event. The event handler for this listener function will simply match the textfield in the first second.
myText_txt.addEventListener (Event.CHANGE, assignText);
function assignText(evt:Event):void {}
textResults_txt.text = myText_txt.text;
} -
Counting of string separated by commas in the cells of a column
Hi all
Try to pass some of my Excel spreadsheets in numbers. I'd appreciate help with a specific string of text/number in the cells in a column. In the example below (no sheet of complete works) is a column, the packs work (WP01, WP02 and so forth)-which means work packs a particular Test & Validation document (e.g. TV-102) applies to.
I would like to be able to simple counting the number of occurrences, say "WP05", is applicable. If I use COUNTIF, on the "WorkPack" column, he has only the cells that contain only the string "WP05" (i.e. in the sheet, I work with, I know there are 22 entries for "WP05" in the column of pack work, but only the 14 account)
Note: I am building this on my MAC, but would like to be able to access and use these sheets on my iPad - don't know if that makes a difference.
Any suggestions / ideas?
Thank you in advance...
ATB Perry
ID
Paper group
WorkPack
TV-91
Validation of NFR
WP05 WP06
TV-102
Certificate of conformity
WP05 WP06
TV-103
Validation of NFR
WP05 WP06
TV-206
Test EN
WP05
TV-207
Test EN
WP05
TV-208
Test EN
WP05
TV-209
Test EN
WP05
TV-212
Certificate of conformity
WP01, WP02 WP03, WP04, WP05, WP06, WP07, WP08 MICROSOFT WINDOWS CURRENTVERSION, WP09, WP10, WP11, WP12, WP13, WP14, WP.15
TV-213
Validation of NFR
WP01, WP02 WP03, WP04, WP05, WP06, WP07, WP08 MICROSOFT WINDOWS CURRENTVERSION, WP09, WP10, WP11, WP12, WP13, WP14, WP.15
TV-214
Test EN
WP01, WP02 WP03, WP04, WP05, WP06, WP07, WP08 MICROSOFT WINDOWS CURRENTVERSION, WP09, WP10, WP11, WP12, WP13, WP14, WP.15
TV-215
Validation of NFR
WP01, WP02 WP03, WP04, WP05, WP06, WP07, WP08 MICROSOFT WINDOWS CURRENTVERSION, WP09, WP10
TV-308
Validation of NFR
WP01, WP02 WP03, WP04, WP05, WP06, WP07, WP08 MICROSOFT WINDOWS CURRENTVERSION, WP09, WP10, WP11, WP12, WP13, WP14, WP.15
TV-338
Test EN
WP05
Here's how I would approach (without more):
Add additional columns to your table (those titled "WP01',"WP02", etc.). Enter the names as shown
The first line is a heading row.
Also... Add an extra line at the end and make a footer row
D2 = (LEN ($C2) −LEN (REPLACE ($C2, D$ 1, ""))) ÷LEN ($1 D)
It's shorthand dethrone select cell D2 and type e (or copy and paste it here) the formula:
= (LEN ($C2) −LEN (REPLACE ($C2, D$ 1, ""))) ÷LEN ($1 D)
Select cell D2, copy
Select cells D2 the bottom of column R, paste
in the footer row (row 15 of this example) iff the following formula:
D15 = Sum (D)
Select the cell D15, copy
Select the cells D15 thru R15, dough
I could never find 22 WP05 instances (even when I search your message on this web page):
-
String separated by commas to 'IN' operator in SQL query
Hello
The issue is that the "In" operator in the report query accepts values contained in the element of page Apex... 221,332,542.
Is there a common solution for this problem?
Thank you
Patrick
984146 wrote:
The issue is that the "In" operator in the report query accepts values contained in the element of page Apex... 221,332,542.
It's the common "variable list" model [anti-]. In
select * from table where columnvalue in (7788, 7839, 7876)
(7788, 7839, 7876)
is a list of expressions and the predicate is evaluated as a membership condition.In
select * from table where columnvalue in :P1_X
:P1_X
is a scalar string, unable to contain multiple values.In a report of type APEX, a source report of the body of the PL/SQL function returning a SQL query with lexical substitution can be used to produce a "variable list:
return 'select * from table where columnvalue in (' || :P1_X || ')';
where
P1_X
contains less than 1000 values, has been disinfected to code SQL injectionand string values are properly cited.Some people suggest the following approach, that will work also in interactive APEX reports:
select * from table where instr(':' || :P1_X || ':', ':' || columnvalue || ':') > 0
However, it is underperforming because it eliminates the possibility of using the index optimizer or the size of the partition in the execution plan.
See various elements in the list to ask Tom and imitating the channel to the table using sql features for effective solutions.
-
divide the string separated by commas into columns
Hello
I have the following string
The above string must be divided into 4 different columnsstr := 'abcd,123,defoifcd,87765'
How can I achieve that
Thank youHello
Use REGEXP_SUBSTR:
SELECT REGEXP_SUBSTR (str, '[^,]+', 1, 1) AS part_1 , REGEXP_SUBSTR (str, '[^,]+', 1, 2) AS part_2 , REGEXP_SUBSTR (str, '[^,]+', 1, 3) AS part_3 , REGEXP_SUBSTR (str, '[^,]+', 1, 4) AS part_4 FROM table_x ;
Str can contain foul? For example, you can have a string like ' foo, bar ", where you want to count part_2 and part_3 as NULL and 'bar' is part_4? If so:
SELECT RTRIM (REGEXP_SUBSTR (str, '[^,]*,', 1, 1), ',') AS part_1 , RTRIM (REGEXP_SUBSTR (str, '[^,]*,', 1, 2), ',') AS part_2 , RTRIM (REGEXP_SUBSTR (str, '[^,]*,', 1, 3), ',') AS part_3 , LTRIM (REGEXP_SUBSTR (str, ',[^,]*', 1, 3), ',') AS part_4 FROM table_x ;
Published by: Frank Kulash, February 14, 2012 08:46
-
the analysis of string separated by commas
Hello people,
Indeed, this forum is great and has always helped me a lot. I hope that this time remains the same. Thank you guys for you continues a support and help.
I have a value string as a-, b, c, d, e, f
Just sql help, I want to put each value of the string above in a different line. If the output should be-
one
b
c
d
e
f
using procedures would not only complex, but I just want to do by using queries.
Please advise,
Thank you.SQL> with t as (select 'ABC,DEF GHI,JKL' str from dual) 2 select regexp_substr(str,'[^,]+', 1, level) list 3 from t connect by level <= NVL( LENGTH( REGEXP_REPLACE( str, '[^,]+', NULL ) ), 0 ) + 1 4 / LIST --------------- ABC DEF GHI JKL
Maybe you are looking for
-
Can't access webOS app store: error message - action could not be completed
Whenever I try to open the app catalog of HP application starts and the 'home' screen will load but then immediately an error will say popup "action failed. Try again later. "and then I can't access anything within the app so I can't download new app
-
How I can add to a table of defined length and have the first value is the first value out.
I want to build/adding a table. Let's say that the length is set to 10 items. When is element 11 I want the first element to be expelled for that table a always the latest 10 items in there in order. the berries should look like this: {0,1,2,3,4,5,6,
-
Windows Update cannot find driver for iPod Nano after update for Wndows 7
After upgrading to Windows 7 (64 bit) of Vista, I plugged my iPod Nano (2nd gen.) into the USB port with iTunes running. Error message told me it couldn't find drivers (in Windows Update I guess) for her and was reported as a storage device USB not r
-
have vista(32bit) with the Service Pack 2 won't not let me load the windows installer
any upgrade I have try to stop me because he says that my Installer is not working try to upgrade to windows 7 and I can not install the Advisor to upgrade... Please help!
-
WRT1900ACS NBN FTTP compatibility
I'm new here and thought that it is perhaps the best forum to have answered my query. I am very interested in buying the router Linksys WRT 1900ACS , but many retailers say that the WRT1900ACS is not compatible with the type NBN FTTP connections. Is