how to replace junk characters in oracle sql

In this example, it means all characters that dont match numbers or letters. You're replacing any character which is NOT in the list. Useful SQL Patterns: Matching Nulls by Masking Nulls. To contact Oracle Corporate Headquarters from anywhere in the world: 1.650.506.7000. Note that you should normally start at 32 instead of 1, since that is the first printable ascii character. The Oracle REPLACE() function replaces all occurrences of a specified substring in a string with another. Thanks for contributing an answer to Database Administrators Stack Exchange! Welcome to Stack Overflow! In this case A (upper case A) to z (lower case z) include Furthermore, if you go back to Script 4, you will recall that for the 3rd email address, I included the start of header character at the end of the email address, but looking at the data in Figure 3, the start of header character is not easily visible at the end of that 3rd email address. Also, if you'd happen to be using SQL*Plus, an interesting feature is the line continuation character, "-" or hyphen. how to replace junk characters in oracle sql. To find the newline character, use CHR(10). If you want to just remove all special characters, you can use a function like this: SELECT REGEXP_REPLACE(your_column, '[^0-9A-Za-z]', '') Expertise through exercise! This function, introduced in Oracle 10g, will allow you to replace a sequence of characters in a string with another set of characters using regular expression pattern matching . The REGEXP_REPLACE () function takes 6 arguments: 1) source_string. Could you observe air-drag on an ISS spacewalk? I want to remove all characters that are neither underscore, hyphen or alpha-numeric. Same way you can use more char removal form company name. (LogOut/ I am guessing it is AL32UTF8, which is multibyte. Unwanted characters can seriously hurt the quality of your data and make it more difficult to analyze the information youve collected. This 2-page SQL Basics Cheat Sheet will be a great value for beginners as well as for professionals. For instance, the ASCII numeric code associated with the backslash (\) character is 92. How to Tackle SQL NULLs: COALESCE function. This definitely got me going down the right track, so thank you for adding this! Home Oracle String Functions Oracle REPLACE. So if you were to test with a text containing a circumflex (not on top of a vowel), it would surely remain, since you insist numerous times. This answer has been accepted so I believe it is not outright wrong but 1.) ), A to Z, circumflex (to be sure) or zero to nine. Reference: https://community.oracle.com/blogs/bbrumm/2016/12/11/how-to-replace-special-characters-in-oracle-sql. This seems to mostly work using REGEXP_REPLACE and LTRIM: However, for some reason this doesn't quite work when there is a line-break in the source string: This instead returns "HelloWorld", i.e. Using a Counter to Select Range, Delete, and Shift Row Up. How many grandchildren does Joe Biden have? One possible workaround here would be to force a collation which distinguishes between the two characters when you query: Thanks for contributing an answer to Stack Overflow! 2) search_pattern. Good idea, but with this you are actually identifying fields having data where the size in bytes is not the same of the number of the symbols represented by them. If that data consists anything like bullets,arrows of word document. Using REPLACE. ensure that it is not immediately followed by a single quotation mark. So you can use regular expressions to find and remove those. Please help us improve Stack Overflow. Depending on what you're doing and the input, you could end up running lots of recursive branches. List of resources for halachot concerning celiac disease. Connor and Chris don't just spend all day on AskTOM. How to see the number of layers currently selected in QGIS. Years ago I found a post on this site where a double translate was used to remove bad characters from a string. I'm a bit late in answering this question, but had the same problem recently (people cut and paste all sorts of stuff into a string and we don't always know what it is). And of course, keep up to date with AskTOM via the official twitter account. Classes, workouts and quizzes on Oracle Database technologies. So, thats how you can replace special characters in Oracle SQL. oracle does not support the regex syntax to specify code points/characters by their hex representation (ie. It's inevitable that some data in the database has no value. This function will replace the first character of the second parameter (CHR(10)) with the first character of the third parameter (a space). I'm not sure what you're looking for. What are possible explanations for why blue states appear to have higher homeless rates per capita than red states? Say for instance that source data contains an email address for John Doe that has several invalid special characters as shown in Script 2. Another approach: instead of cutting away part of the fields' contents you might try the SOUNDEX function, provided your database contains European characters (i.e. For other characters pl/sql code working very fine. How to save a selection of features, temporary in QGIS? Is this in a row in a table - where? This is neat and works well. they are just character strings to us, they are just character strings to you. selects zero or more characters that are not (first circumflex) a hyphen, circumflex (second), underscore, circumflex (), a to z, circumflex (), A to Z, circumflex (to be sure) or zero to nine. How do I grep for all non-ASCII characters? I have used this function many times over the years. Its flexible and allows for multiple characters, but theres a bit of a learning curve with regular expressions. In algorithms for matrix multiplication (eg Strassen), why do we say n is equal to the number of rows and not the number of elements in both matrices? To learn more, see our tips on writing great answers. It only takes a minute to sign up. Best Data compression technique in Oracle, The best way to query a partitioned table in Oracle, Best way to import and/or upgrade Oracle database, Oracle 11gR2 (11.2.0.4.0) - Drop and Remove Datafiles, Looking to protect enchantment in Mono Black. Many of the software vendors abide by ASCII and thus represents character codes according to the ASCII standard. Connect and share knowledge within a single location that is structured and easy to search. To get technical support in the United States: 1.800.633.0738. you've already done the work for me here, you have posted the "simple" way in sql to do this. in my source .but when i am loading in to target (oracle DB),its coming as '[]' and '!'. You can replace special charactersusing the Oracle REPLACE function. Years ago I found a post on this site where a double translate was used to remove bad characters from a string. To explain how to solve problems with unwanted characters, well work with a simple health care database. In case the string_pattern is null or empty, the REPLACE () function returns . If you examine the original table, youll notice that some entries under the diagnostic column have some unwanted characters such as unnecessary spaces at the beginning. Download it in PDF or PNG format. In this tutorial, you have learned how to use the Oracle REPLACE() function to replace all occurrences of a substring in a string with another. but got this ORA-12728: invalid range in regular expression . Anyway, use REGEXEP_REPLACE: TOAD doesn't show me what the characters are typically they show up as boxes. You can also catch regular content via Connor's blog and Chris's blog. Stack Exchange network consists of 181 Q&A communities including Stack Overflow, the largest, most trusted online community for developers to learn, share their knowledge, and build their careers. PL/SQL reference manual from the Oracle documentation library, Is there a routine in Oracle that can test for and remove. The one possible problem with that solution is if the string is made up only of spaces it returns null in case they expect the spaces replaced rather than removed. Asking for help, clarification, or responding to other answers. Lets start by exploring the SQL trim and length functions. Fill in your details below or click an icon to log in: You are commenting using your WordPress.com account. Sifiso has over 15 years of across private and public business sectors, helping businesses implement Microsoft, AWS and open-source technology solutions. To check for the carriage return, use the CHR(13) function. Replace dummy and dual with your own column/table. They are very similar and are explained in the following table: Lets try these functions, starting with LENGTH. Find centralized, trusted content and collaborate around the technologies you use most. I don't know if my step-son hates me, is scared of me, or likes me? applied to a string composed of mixed-case alphabet letters and digits show inverse behaviour to what you expect (ie. I suggest that the reason the character is not being replaced is because the particular collation you are using treats and A as being the same character. It specifies an ascii character range, i.e. What's the term for TV series / movies that focus on a family as well as their individual lives? Parameters. If the opening quote_delimiteris one of [, {, <, or (, then the Such characters typically are not easy to detect (to the human eye) and thus not easily replaceable using the REPLACE T-SQL function. And of course, keep up to date with AskTOM via the official twitter account. You can use one of these three functions. So, this example replaces all characters that arent numbers or letters with a zero-length string. tab, and return. You can replace special characters using the Oracle REPLACE function. Can state or city police officers enforce the FCC regulations? But yeah technically the answer is correct, this would detect non-ascii characters, given the original 7-bit ascii standard. Sifiso's LinkedIn profile A diagnosis of flu shows up as Flu, flu, and flu. if it is just a few thousand out of millions, just do an update, Just curious - any particular reason for using. Lets see how the SQL LENGTH function works in this query: We can see that several records have unwanted characters, i.e. For example, to replace a carriage return with a space: Oracle's regexp engine will match certain characters from the Latin-1 range as well: this applies to all characters that look similar to ASCII characters like ->A, ->O, ->U, etc., so that [A-Z] is not what you know from other environments like, say, Perl. So you can use something like [\x80-\xFF] to detect non-ASCII characters. In addition to ASCII Printable Characters, the ASCII standard further defines a list of special characters collectively known as ASCII Control Characters. I need a 'standard array' for a D&D-like homebrew game, but anydice chokes - how to proceed? He manually types his notes into the database, so the data quality is occasionally poor. The drawback is that it only allows you to replace one character. 1 Answer. If this is in a file, fix the file. But here's what I'd do without needing to go to the manuals. Using '['||chr(127)||'-'||chr(225)||']' gives the desired result. (LogOut/ Any plan for chennai. I want to first identify the rows based on the value in the column that has characters which are not 'a-z' or '0-9' and replace them with x. Only using advanced text editors such as Notepad++ are we then able to visualize the special characters in the data, as shown in Figure 4. The SQL TRANSLATE() function replaces a sequence of characters in a string with another sequence of characters. 2) cannot guess, you did not give an example. Thanks for the answer but there could be lots of HTML codes stored in that columns and all of them may be different. The only thing they have in common is the start '&#' and the end ';' characters. I am trying to find all the rows that have junk characters in a specific column of the table and replace them with character x,following is the output I see for the column in question: select contact_first_name,length(contact_first_name),dump(contact_first_name) As blank spaces are not visible characters, we use angle brackets to show us where the extra spaces (if any) are. document.getElementById( "ak_js_1" ).setAttribute( "value", ( new Date() ).getTime() ); Enter your email address to subscribe to this blog and receive notifications of new posts by email. Enterprise Resource Planning and Integrations BlogSpot, https://community.oracle.com/blogs/bbrumm/2016/12/11/how-to-replace-special-characters-in-oracle-sql, Using functions in WITH clause in Oracle12c. There are a number of ways you could do this. Its better as chennai is too hot , Mumbai has become pleasent weather wise , Banglore is anyway best in india as for as weather goes! The flat file generated additional lines when it exceeded 255 chars or the next comma position in a comma-delimited file whichever is latest. Latin-1) characters only. I used it in a word-wrap function. Lets say the characters you wanted to remove where 'SAT' (to remove control characters like TABS, CR, LF you would use chr(9) || chr(13) || chr(10). Scroll down to learn how to remove junk characters in SQL in the easiest way! You can also use the REGEXP_REPLACE function to replace special characters. Connect and share knowledge within a single location that is structured and easy to search. The quote_delimiter can be a single quotation mark. We can fix it with SQL string functions. How Intuit improves security, latency, and development velocity with a Site Maintenance - Friday, January 20, 2023 02:00 - 05:00 UTC (Thursday, Jan Were bringing advertisements for technology courses to Stack Overflow, Removing duplicate rows from table in Oracle. It explains about the disappearing hyphen. How to tell if my LLC's registered agent has resigned? LTRIM. It is inserting some junk characters into database like below. What's the difference between ASCII and Unicode? We 1st need to find out what the characters are before deciding what to do with them. nope, they are just character strings! Then return the result. Removes the specified character from the left side only, Removes the specified character from the right side only, Removes the specified character from both sides. The PLSQL is because that may return a string longer than 4000 and you have 32K available for varchar2 in PLSQL. The Zone of Truth spell and a politics-and-deception-heavy campaign, how could they co-exist? In the PLSQL function, do an asciistr () of your input. Table 1 shows a top 5 sample of ASCII Printable Characters. The backslash character falls into a category of ASCII characters that is known as ASCII Printable Characters which basically refers to characters visible to the human eye. Obviously the data origins from a multibyte dataset but your database is on a one byte dataset. Moreover, more and more companies are encouraging their employees in non-IT areas (like sales, advertising, and finances) to learn and use SQL. Now user asking to remove all those Junk characters from Comments Column. Cool, but I prefer the "double translate" method you posted before. 2. secondly I am trying translate the characters by pl/sql code as mentioned in this thread but I am not able to remove single quote character from character string. Removing all special characters using REGEXP_REPLACE in oracle, Microsoft Azure joins Collectives on Stack Overflow. 'This is a sample article', 'Another excellent sample article', Calling PL/SQL Stored Functions in Python, Deleting Data From Oracle Database in Python. Last updated: November 18, 2018 - 10:36 pm UTC, Ajeet Ojha, July 18, 2003 - 5:01 pm UTC, A reader, July 21, 2003 - 6:52 am UTC, Oliver Dimalanta, July 21, 2003 - 6:53 am UTC, Pingu_SAN, August 21, 2003 - 6:13 am UTC, Sandeep, September 15, 2003 - 12:17 pm UTC, Shailandra, September 15, 2003 - 3:00 pm UTC, A reader, July 29, 2004 - 10:09 am UTC, Duke Ganote, July 29, 2004 - 1:50 pm UTC, Parag Jayant Patankar, November 09, 2004 - 1:16 am UTC, Parag Jayant Patankar, November 09, 2004 - 8:57 am UTC, Hubertus Krogmann, December 02, 2004 - 8:00 am UTC, A reader, April 21, 2005 - 8:25 am UTC, A reader, April 21, 2005 - 3:46 pm UTC, A reader, May 03, 2006 - 11:50 am UTC, A reader, May 03, 2006 - 1:47 pm UTC, A reader, May 04, 2006 - 9:38 am UTC, A reader, November 15, 2008 - 3:05 pm UTC, A reader, November 19, 2008 - 9:59 pm UTC, Chris Gould, November 24, 2008 - 1:30 pm UTC, Raaghid, November 25, 2008 - 10:22 am UTC, A reader, February 11, 2009 - 10:46 am UTC, A reader, March 03, 2009 - 8:03 pm UTC, Saradhi, June 12, 2009 - 2:07 pm UTC, Duke Ganote, June 12, 2009 - 3:31 pm UTC, A reader, June 13, 2009 - 8:25 am UTC, A reader, March 04, 2010 - 11:16 am UTC, srinivas Rao, September 08, 2011 - 7:57 am UTC, A reader, October 24, 2014 - 1:27 am UTC. Last updated: August 25, 2022 - 1:24 pm UTC, sona sh, February 25, 2016 - 10:51 am UTC, sona sh, February 25, 2016 - 10:58 am UTC, sona sh, February 25, 2016 - 11:01 am UTC, sona sh, February 25, 2016 - 11:03 am UTC, sona sh, February 25, 2016 - 11:04 am UTC, Rajeshwaran Jeyabal, February 25, 2016 - 12:51 pm UTC, sona sh, February 25, 2016 - 2:18 pm UTC, sona sh, March 08, 2016 - 11:36 am UTC, Likitha, October 02, 2017 - 8:07 pm UTC, Anil kumar, July 30, 2019 - 11:22 am UTC, Sitaram, August 28, 2019 - 2:13 pm UTC, Mark Wooldridge, August 29, 2019 - 5:55 pm UTC, Mark Wooldridge, August 29, 2019 - 6:21 pm UTC, Ying Wang, April 13, 2021 - 2:00 pm UTC. The SQL Coalesce Function: Handling Null Values. Fortunately, SQL Server ships with additional built-in functions such as CHAR and ASCII that can assist in automatically detecting and replacing ASCII Control Characters. Difference between CLOB and BLOB from DB2 and Oracle Perspective? is the regular expression pattern for which is used to search in the source string. In this article, we covered the important SQL string functions TRIM and LENGTH to learn how to remove junk characters in SQL. Check out more PL/SQL tutorials on our LiveSQL tool. Making statements based on opinion; back them up with references or personal experience. Finally, query data from the articles table to verify the replacements: As you can see in the output, the tags have been replaced with the b tags as expected. unnecessary spaces. When it comes to SQL Server, the cleaning and removal of ASCII Control Characters are a bit tricky. The special characters Im referring to are any characters that arent alphanumeric. Change), You are commenting using your Facebook account. Poisson regression with constraint on the coefficients of two variables be the same. However, NULLs should be handled with care see how! REGEXP_REPLACE uses regular expressions to replace characters. I am trying to find all the rows that have junk characters in a specific column of the table and replace them with character x,following is the output I see for the column in question: Well, what characters are they? Unwanted characters in text data can be a bit of a pain, but theres an easy way to fix them. To replace special characters with TRANSLATE, you might need to specify the replacement character many times. We can remove those unwanted characters by using the SQL TRIM, SQL LTRIM, and SQL RTRIM functions. : Hi ..I have a string JOS and need it to be replaced as JOSE. When we work with data populated or loaded as free text, the data quality is often quite poor. Yes, we can use REPLACE and TRANSLATE to do this. with 10g regular expressions, this will be easy. Making statements based on opinion; back them up with references or personal experience. 15 Best SQL Articles for Beginners Published in 2017. One aspect of transforming source data that could get complicated relates to the removal of ASCII special characters such as new line characters and the horizontal tab. Or you just write a function that translates characters from the Latin-1 range into similar looking ASCII characters, like. Everything else can be different in length and value. To subscribe to this RSS feed, copy and paste this URL into your RSS reader. Change), You are commenting using your Twitter account. If you want to detect hidden or unwanted characters as part of an initial diagnosis, use LENGTH. Thus, instead of providing an exclamation mark as the string to replace, we can hardcode the ASCII numerical code for exclamation mark which is 33 and convert that numeric code back to character code using the CHAR function. rev2023.1.18.43173. By clicking Accept all cookies, you agree Stack Exchange can store cookies on your device and disclose information in accordance with our Cookie Policy. If you use the ASCIISTR function to convert the Unicode to literals of the form \nnnn, you can then use REGEXP_REPLACE to strip those literals out, like so where field and table are your field and table names respectively. Is it OK to ask the professor I am applying to for a recommendation letter? This will run as-is so you can verify the syntax with your installation. Those all look VALID and not very special to me. There's probably a more direct way using regular expressions. similarly for other such characters like , . Connect and share knowledge within a single location that is structured and easy to search. How Do You Write a SELECT Statement in SQL? There are 10 characters in the second parameter, so there needs to be 10 characters in the third parameter. If you have a new question then please post a new one rather than asking more here. Umlaut characters converted to junk while running PL/SQL script Hi,I have procedure with umlaut characters in it. By clicking Post Your Answer, you agree to our terms of service, privacy policy and cookie policy. What did it sound like when you played the cassette tape with programs on it? I run into issues using your solution. Lets go ahead and do that now! Do you think learning SQL will help you in your career? The REPLACE() function returns a string with every occurrence of the string_pattern replaced with the string_replacement. We have the skills to fix this query and get the result we want. Site design / logo 2023 Stack Exchange Inc; user contributions licensed under CC BY-SA. Connor and Chris don't just spend all day on AskTOM. In Oracle SQL, you have three options for replacing special characters: REPLACE allows you to replace a single character in a string, and is probably the simplest of the three methods. Posted by on July 26, 2021 on July 26, 2021 You can change this, of course. Create a PLSQL function to receive your input string and return a varchar2. To learn more, see our tips on writing great answers. In this article, well examine some string-related SQL functions that can handle unwanted charactersvisible or not! The REPLACE () function returns a string with every occurrence of the string_pattern replaced with the string_replacement. Why is the padding on months in Oracle 9 characters? I had a similar issue and blogged about it here. Browse other questions tagged, Where developers & technologists share private knowledge with coworkers, Reach developers & technologists worldwide. However, if the quote_delimiterappears in the text literal itself, Find centralized, trusted content and collaborate around the technologies you use most. To demonstrate the challenge of cleaning up ASCII Control Characters, I have written a C# Console application shown in Script 4 that generates an output.txt text file that contains different variations of John Does email address (only the first line has John Does email address in the correct format). List of resources for halachot concerning celiac disease. I should add that 1.) is the string to be searched for. Change). How to automatically classify a sentence or text based on its context? Moreover, these extra characters may sometimes be invisible, which really complicates things. After executing Script 7, we can see in Figure 6 that the length of all email address rows matches back to the length of row 1 which was originally the correct email address. If I am running from SQL to remove/translate character it is getting removed. Asking for help, clarification, or responding to other answers. Just as an adendum you can also use REGEXP_REPLACE(Column,'[^ -~]','') rather than all those Chr() functions and string concatenations mentioned above. Database Administrators Stack Exchange is a question and answer site for database professionals who wish to improve their database skills and learn from others in the community. We are aware of the issue and are working as quick as possible to correct the issue. That function converts the non-ASCII characters to \xxxx notation. I'll ask that other readers test this out for us and report back the results you do not have spaces there then - you have something that your terminal normally doesn't print. For flu, the length is 4 instead of 3, and the delimited field shows the blank at the beginning. If you do explain it (in your answer), you are far more likely to get more upvotesand the questioner is more likely to learn something! It allows you to specify a character to search for, and a character to replace it with. How to generate an entity-relationship (ER) diagram using Oracle SQL Developer, Display names of all constraints for a table in Oracle SQL, Oracle regexp_replace - removing trailing spaces, Removing all characters before a given special character [Oracle SQL]. The simplest way to replace what we cannot see is that instead of hardcoding the string to replace into our REPLACE function, we should hardcode the string to be replaced by hardcoding its ASCII numerical code within the CHAR function. BTW there is a missing single-quote in the example, above. We could eliminate such characters by applying the REPLACE T-SQL function as shown in Script 3. By clicking Accept all cookies, you agree Stack Exchange can store cookies on your device and disclose information in accordance with our Cookie Policy. One of the important steps in an ETL process involves the transformation of source data. Then, use TRIM to get rid of unwanted characters. Ensure however that your Junk Data is explicit; for instance in my first post 1 was identified as a Junk character in a part of the string but not in another part, so you would need to specify ", 1". Don't use pl/sql functions if sql can do it for you. I tried using the hex codes as suggested however:- regexp_replace(column,'[\x00-\xFF]','') Removes nothing by the Capital letters -- do I have escape something or is there something else I need to do? Create a PLSQL function to receive your input string and return a varchar2. unistr 0013 -, 0018 ', 0019 ', 001C ", 001D ". Script 8 provides such a mechanism in a form of a While loop within a user-defined function that iteratively searches through a given string to identify and replace ASCII Control Characters. When it comes to SQL Server, the cleaning and removal of ASCII Control Characters are a bit tricky. We are currently migrating one of our oracle databases to UTF8 and we have found a few records that are near the 4000 byte varchar limit. I think it is because of double regexp_replace. Below is the sample.CREATE OR REPLACE PROCEDURE procPrintHelloWorldISBEGIN DBMS_OUTPUT.PUT_LINE(' , , , , Hello World!');END;/When procedure is created through sql developer, it creates procedure as is without conv Actually, you can define the characters you want to remove in these functions. First, create the articles table with the following structure: Next, insert sample data into the articles table: Then, query data from the articles table: After that, suppose you want to want to replace all tags with tags in the article_body column. To check for the carriage return, use the CHR(13) function. ORA-12728: invalid range in regular expression, Microsoft Azure joins Collectives on Stack Overflow. Site design / logo 2023 Stack Exchange Inc; user contributions licensed under CC BY-SA. This answer turned up in the low quality review queue, presumably because you didn't explain the code. Perhaps read Continuing a Long SQL*Plus Command on Additional Lines. We also discussed how you can nest SQL functions, which is a powerful technique in programming. I started with the regular expression for alpha numerics, then added in the few basic punctuation characters I liked: I used dump with the 1016 variant to give out the hex characters I wanted to replace which I could then user in a utl_raw.cast_to_varchar2. To find the newline character, use CHR(10). are there chr(10)'s in there you want to remove? To speak with an Oracle sales representative: 1.800.ORACLE1. This is a destructive process and would you want to preserve with ascii replacements of some characters? Script 1 shows us an example of how an ASCII numeric code 92 can be converted back into a backslash character as shown in Figure 1. If it is, please let us know via a Comment, http://asktom.oracle.com/pls/asktom/f?p=100:11:::::P11_QUESTION_ID:5203164092530, http://asktom.oracle.com/pls/ask/f?p=4950:61:17787707607021855365::::P61_ID:595323463035, http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:595423463035. Regex in Oracle PL/SQL to remove unwanted characters from a string containing a phone number. rev2023.1.18.43173. Here is the simple test in Oracle 11.2.03, Typ=1 Len=30: 226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255. i.e for some reason this version of Oracle does not replace char(226) and above. Please provide a test case in the form of: How to keep [] in result, as [] are not a special characters. I wouldn't recommend it for production code, but it makes sense and seems to work: The select may look like the following sample: In a single-byte ASCII-compatible encoding (e.g.

Metallic Smell In Nose, Action Verbs For Legal Billing, Caltrans Temporary Traffic Control, Is Hugh Sachs Married, Hscc Band Nikki, Articles H